[latexila/releases-2-0: 19/19] Release 2.0.8



commit 984361003c7ebebb02e15c9953c30e22f401f4e1
Author: Sébastien Wilmet <swilmet src gnome org>
Date:   Tue Jun 14 00:59:19 2011 +0200

    Release 2.0.8
    
    The tarball is based on this commit.

 src/C/app_settings.c       | 2215 ++++++++++++++++++++------------
 src/C/application.c        |  345 ++++--
 src/C/build_tool_dialog.c  |  670 +++++++----
 src/C/build_tool_runner.c  | 1008 +++++++++------
 src/C/build_view.c         |  304 +++--
 src/C/completion.c         | 2236 +++++++++++++++++++++------------
 src/C/custom_statusbar.c   |   25 +-
 src/C/dialogs.c            |  460 +++++---
 src/C/document.c           | 2278 +++++++++++++++++++++-----------
 src/C/document_tab.c       |  496 +++++---
 src/C/document_view.c      |  392 ++++--
 src/C/documents_panel.c    |  123 ++-
 src/C/encodings.c          |    6 +-
 src/C/file_browser.c       | 1076 ++++++++++-------
 src/C/latex_menu.c         |  486 +++++---
 src/C/main.c               |  213 ++--
 src/C/main_window.c        | 3065 ++++++++++++++++++++++++++++++--------------
 src/C/menu_in_toolbar.c    |   16 +-
 src/C/post_processors.c    |  415 ++++---
 src/C/preferences_dialog.c | 1330 ++++++++++++-------
 src/C/project_dialogs.c    |  800 ++++++++----
 src/C/projects.c           |  715 +++++++----
 src/C/search.c             |  622 ++++++---
 src/C/side_panel.c         |  165 ++-
 src/C/symbols.c            |  686 ++++++----
 src/C/tab_info_bar.c       |  116 ++-
 src/C/templates.c          | 1151 +++++++++++------
 src/C/utils.c              |  557 +++++---
 28 files changed, 14174 insertions(+), 7797 deletions(-)
---
diff --git a/src/C/app_settings.c b/src/C/app_settings.c
index 6b4c381..c38a83a 100644
--- a/src/C/app_settings.c
+++ b/src/C/app_settings.c
@@ -1,4 +1,4 @@
-/* app_settings.c generated by valac 0.10.3, the Vala compiler
+/* app_settings.c generated by valac 0.12.1, the Vala compiler
  * generated from app_settings.vala, do not modify */
 
 /*
@@ -75,7 +75,7 @@ typedef struct _ApplicationClass ApplicationClass;
 
 typedef struct _Document Document;
 typedef struct _DocumentClass DocumentClass;
-#define __g_list_free_g_object_unref0(var) ((var == NULL) ? NULL : (var = (_g_list_free_g_object_unref (var), NULL)))
+#define __g_list_free__g_object_unref0_0(var) ((var == NULL) ? NULL : (var = (_g_list_free__g_object_unref0_ (var), NULL)))
 
 #define TYPE_DOCUMENT_VIEW (document_view_get_type ())
 #define DOCUMENT_VIEW(obj) (G_TYPE_CHECK_INSTANCE_CAST ((obj), TYPE_DOCUMENT_VIEW, DocumentView))
@@ -114,25 +114,25 @@ typedef struct _MainWindowClass MainWindowClass;
 
 struct _BuildJob {
 	gboolean must_succeed;
-	char* post_processor;
-	char* command;
-	char** command_args;
+	gchar* post_processor;
+	gchar* command;
+	gchar** command_args;
 	gint command_args_length1;
 };
 
 struct _BuildTool {
-	char* description;
-	char* extensions;
-	char* label;
-	char* icon;
+	gchar* description;
+	gchar* extensions;
+	gchar* label;
+	gchar* icon;
 	gboolean compilation;
 	GList* jobs;
 };
 
 struct _MostUsedSymbol {
-	char* id;
-	char* latex_command;
-	char* package_required;
+	gchar* id;
+	gchar* latex_command;
+	gchar* package_required;
 	guint num;
 };
 
@@ -149,7 +149,7 @@ struct _AppSettingsPrivate {
 	GSettings* editor;
 	GSettings* desktop_interface;
 	guint timeout_id;
-	char* _system_font;
+	gchar* _system_font;
 	GeeLinkedList* most_used_symbols;
 	gboolean mus_modified;
 	GeeLinkedList* build_tools;
@@ -168,6 +168,7 @@ struct _Document {
 	GtkSourceBuffer parent_instance;
 	DocumentPrivate * priv;
 	DocumentTab* tab;
+	guint _unsaved_doc_num;
 };
 
 struct _DocumentClass {
@@ -175,16 +176,16 @@ struct _DocumentClass {
 };
 
 
+static gpointer app_settings_parent_class = NULL;
 static AppSettings* app_settings_instance;
 static AppSettings* app_settings_instance = NULL;
-static gpointer app_settings_parent_class = NULL;
 
 GType build_job_get_type (void) G_GNUC_CONST;
 BuildJob* build_job_dup (const BuildJob* self);
 void build_job_free (BuildJob* self);
 void build_job_copy (const BuildJob* self, BuildJob* dest);
 void build_job_destroy (BuildJob* self);
-static char** _vala_array_dup3 (char** self, int length);
+static gchar** _vala_array_dup3 (gchar** self, int length);
 GType build_tool_get_type (void) G_GNUC_CONST;
 BuildTool* build_tool_dup (const BuildTool* self);
 void build_tool_free (BuildTool* self);
@@ -210,57 +211,58 @@ static void app_settings_initialize (AppSettings* self);
 static void app_settings_load_build_tools (AppSettings* self);
 static void app_settings_load_most_used_symbols (AppSettings* self);
 AppSettings* app_settings_get_default (void);
-static void app_settings_set_system_font (AppSettings* self, const char* value);
-static void _lambda6_ (GSettings* setting, const char* key, AppSettings* self);
-static void app_settings_set_font (AppSettings* self, const char* font);
-const char* app_settings_get_system_font (AppSettings* self);
-static void __lambda6__g_settings_changed (GSettings* _sender, const char* key, gpointer self);
-static void _lambda81_ (GSettings* setting, const char* key, AppSettings* self);
-static void __lambda81__g_settings_changed (GSettings* _sender, const char* key, gpointer self);
-static void _lambda82_ (GSettings* setting, const char* key, AppSettings* self);
-static void __lambda82__g_settings_changed (GSettings* _sender, const char* key, gpointer self);
-static void _lambda83_ (GSettings* setting, const char* key, AppSettings* self);
+static void app_settings_set_system_font (AppSettings* self, const gchar* value);
+static void _lambda6_ (GSettings* setting, const gchar* key, AppSettings* self);
+static void app_settings_set_font (AppSettings* self, const gchar* font);
+const gchar* app_settings_get_system_font (AppSettings* self);
+static void __lambda6__g_settings_changed (GSettings* _sender, const gchar* key, gpointer self);
+static void _lambda84_ (GSettings* setting, const gchar* key, AppSettings* self);
+static void __lambda84__g_settings_changed (GSettings* _sender, const gchar* key, gpointer self);
+static void _lambda85_ (GSettings* setting, const gchar* key, AppSettings* self);
+static void __lambda85__g_settings_changed (GSettings* _sender, const gchar* key, gpointer self);
+static void _lambda86_ (GSettings* setting, const gchar* key, AppSettings* self);
 GType application_get_type (void) G_GNUC_CONST;
 Application* application_get_default (void);
 GType document_get_type (void) G_GNUC_CONST;
 GList* application_get_documents (Application* self);
-static void _g_list_free_g_object_unref (GList* self);
-static void __lambda83__g_settings_changed (GSettings* _sender, const char* key, gpointer self);
-static void _lambda84_ (GSettings* setting, const char* key, AppSettings* self);
+static void _g_object_unref0_ (gpointer var);
+static void _g_list_free__g_object_unref0_ (GList* self);
+static void __lambda86__g_settings_changed (GSettings* _sender, const gchar* key, gpointer self);
+static void _lambda87_ (GSettings* setting, const gchar* key, AppSettings* self);
 GType document_view_get_type (void) G_GNUC_CONST;
 GList* application_get_views (Application* self);
-static void __lambda84__g_settings_changed (GSettings* _sender, const char* key, gpointer self);
-static void _lambda85_ (GSettings* setting, const char* key, AppSettings* self);
-static void __lambda85__g_settings_changed (GSettings* _sender, const char* key, gpointer self);
-static void _lambda86_ (GSettings* setting, const char* key, AppSettings* self);
-static void __lambda86__g_settings_changed (GSettings* _sender, const char* key, gpointer self);
-static void _lambda87_ (GSettings* setting, const char* key, AppSettings* self);
-static void __lambda87__g_settings_changed (GSettings* _sender, const char* key, gpointer self);
-static void _lambda88_ (GSettings* setting, const char* key, AppSettings* self);
-static void __lambda88__g_settings_changed (GSettings* _sender, const char* key, gpointer self);
-static void _lambda89_ (GSettings* setting, const char* key, AppSettings* self);
+static void __lambda87__g_settings_changed (GSettings* _sender, const gchar* key, gpointer self);
+static void _lambda88_ (GSettings* setting, const gchar* key, AppSettings* self);
+static void __lambda88__g_settings_changed (GSettings* _sender, const gchar* key, gpointer self);
+static void _lambda89_ (GSettings* setting, const gchar* key, AppSettings* self);
+static void __lambda89__g_settings_changed (GSettings* _sender, const gchar* key, gpointer self);
+static void _lambda90_ (GSettings* setting, const gchar* key, AppSettings* self);
+static void __lambda90__g_settings_changed (GSettings* _sender, const gchar* key, gpointer self);
+static void _lambda91_ (GSettings* setting, const gchar* key, AppSettings* self);
+static void __lambda91__g_settings_changed (GSettings* _sender, const gchar* key, gpointer self);
+static void _lambda92_ (GSettings* setting, const gchar* key, AppSettings* self);
 GType document_tab_get_type (void) G_GNUC_CONST;
 void document_tab_set_auto_save (DocumentTab* self, gboolean value);
-static void __lambda89__g_settings_changed (GSettings* _sender, const char* key, gpointer self);
-static void _lambda90_ (GSettings* setting, const char* key, AppSettings* self);
+static void __lambda92__g_settings_changed (GSettings* _sender, const gchar* key, gpointer self);
+static void _lambda93_ (GSettings* setting, const gchar* key, AppSettings* self);
 void document_tab_set_auto_save_interval (DocumentTab* self, guint value);
-static void __lambda90__g_settings_changed (GSettings* _sender, const char* key, gpointer self);
-static void _lambda91_ (GSettings* setting, const char* key, AppSettings* self);
-static gboolean _lambda92_ (AppSettings* self);
+static void __lambda93__g_settings_changed (GSettings* _sender, const gchar* key, gpointer self);
+static void _lambda94_ (GSettings* setting, const gchar* key, AppSettings* self);
+static gboolean _lambda95_ (AppSettings* self);
 void symbols_reload_most_used_symbols (void);
-static gboolean __lambda92__gsource_func (gpointer self);
-static void __lambda91__g_settings_changed (GSettings* _sender, const char* key, gpointer self);
-void document_view_set_font_from_string (DocumentView* self, const char* font);
+static gboolean __lambda95__gsource_func (gpointer self);
+static void __lambda94__g_settings_changed (GSettings* _sender, const gchar* key, gpointer self);
+void document_view_set_font_from_string (DocumentView* self, const gchar* font);
 GeeList* app_settings_get_most_used_symbols (AppSettings* self);
 void app_settings_clear_most_used_symbols (AppSettings* self);
-void app_settings_add_symbol (AppSettings* self, const char* id, const char* command, const char* package);
+void app_settings_add_symbol (AppSettings* self, const gchar* id, const gchar* command, const gchar* package);
 static gint app_settings_sort_most_used_symbol (AppSettings* self, gint index, MostUsedSymbol* mus);
 void symbols_remove_most_used_symbol (gint index);
 void symbols_insert_most_used_symbol (gint index, MostUsedSymbol* symbol);
 void symbols_swap_most_used_symbol (gint current_index, gint new_index);
 static GFile* app_settings_get_file_most_used_symbols (AppSettings* self);
-static void app_settings_mus_parser_start (AppSettings* self, GMarkupParseContext* context, const char* name, char** attr_names, int attr_names_length1, char** attr_values, int attr_values_length1, GError** error);
-static void _app_settings_mus_parser_start_gmarkup_parser_start_element_func (GMarkupParseContext* context, const char* element_name, char** attribute_names, char** attribute_values, gpointer self, GError** error);
+static void app_settings_mus_parser_start (AppSettings* self, GMarkupParseContext* context, const gchar* name, gchar** attr_names, int attr_names_length1, gchar** attr_values, int attr_values_length1, GError** error);
+static void _app_settings_mus_parser_start_gmarkup_parser_start_element_func (GMarkupParseContext* context, const gchar* element_name, gchar** attribute_names, gchar** attribute_values, gpointer self, GError** error);
 void app_settings_save_most_used_symbols (AppSettings* self);
 void utils_delete_file (GFile* file);
 GeeLinkedList* app_settings_get_build_tools (AppSettings* self);
@@ -270,7 +272,7 @@ void app_settings_move_build_tool_down (AppSettings* self, gint num);
 static void app_settings_update_all_build_tools_menu (AppSettings* self);
 void app_settings_delete_build_tool (AppSettings* self, gint num);
 void app_settings_append_build_tool (AppSettings* self, BuildTool* tool);
-static gboolean app_settings_is_compilation (AppSettings* self, const char* icon);
+static gboolean app_settings_is_compilation (AppSettings* self, const gchar* icon);
 void app_settings_update_build_tool (AppSettings* self, gint num, BuildTool* tool);
 static gboolean app_settings_is_build_tools_equal (AppSettings* self, BuildTool* tool1, BuildTool* tool2);
 void app_settings_reset_all_build_tools (AppSettings* self);
@@ -278,15 +280,15 @@ static GFile* app_settings_get_user_config_build_tools_file (AppSettings* self);
 GType main_window_get_type (void) G_GNUC_CONST;
 GList* application_get_windows (Application* self);
 void main_window_update_build_tools_menu (MainWindow* self);
+static void _vala_array_add8 (GFile*** array, int* length, int* size, GFile* value);
 static void _vala_array_add9 (GFile*** array, int* length, int* size, GFile* value);
 static void _vala_array_add10 (GFile*** array, int* length, int* size, GFile* value);
-static void _vala_array_add11 (GFile*** array, int* length, int* size, GFile* value);
-static void app_settings_parser_start (AppSettings* self, GMarkupParseContext* context, const char* name, char** attr_names, int attr_names_length1, char** attr_values, int attr_values_length1, GError** error);
-static void _app_settings_parser_start_gmarkup_parser_start_element_func (GMarkupParseContext* context, const char* element_name, char** attribute_names, char** attribute_values, gpointer self, GError** error);
-static void app_settings_parser_end (AppSettings* self, GMarkupParseContext* context, const char* name, GError** error);
-static void _app_settings_parser_end_gmarkup_parser_end_element_func (GMarkupParseContext* context, const char* element_name, gpointer self, GError** error);
-static void app_settings_parser_text (AppSettings* self, GMarkupParseContext* context, const char* text, gsize text_len, GError** error);
-static void _app_settings_parser_text_gmarkup_parser_text_func (GMarkupParseContext* context, const char* text, gsize text_len, gpointer self, GError** error);
+static void app_settings_parser_start (AppSettings* self, GMarkupParseContext* context, const gchar* name, gchar** attr_names, int attr_names_length1, gchar** attr_values, int attr_values_length1, GError** error);
+static void _app_settings_parser_start_gmarkup_parser_start_element_func (GMarkupParseContext* context, const gchar* element_name, gchar** attribute_names, gchar** attribute_values, gpointer self, GError** error);
+static void app_settings_parser_end (AppSettings* self, GMarkupParseContext* context, const gchar* name, GError** error);
+static void _app_settings_parser_end_gmarkup_parser_end_element_func (GMarkupParseContext* context, const gchar* element_name, gpointer self, GError** error);
+static void app_settings_parser_text (AppSettings* self, GMarkupParseContext* context, const gchar* text, gsize text_len, GError** error);
+static void _app_settings_parser_text_gmarkup_parser_text_func (GMarkupParseContext* context, const gchar* text, gsize text_len, gpointer self, GError** error);
 static void app_settings_set_build_tool_view_dvi (AppSettings* self, BuildTool* value);
 static void app_settings_set_build_tool_view_pdf (AppSettings* self, BuildTool* value);
 static void app_settings_set_build_tool_view_ps (AppSettings* self, BuildTool* value);
@@ -295,19 +297,17 @@ void app_settings_get_build_tool_view_dvi (AppSettings* self, BuildTool* result)
 void app_settings_get_build_tool_view_pdf (AppSettings* self, BuildTool* result);
 void app_settings_get_build_tool_view_ps (AppSettings* self, BuildTool* result);
 static void app_settings_finalize (GObject* obj);
-static void app_settings_get_property (GObject * object, guint property_id, GValue * value, GParamSpec * pspec);
-static void app_settings_set_property (GObject * object, guint property_id, const GValue * value, GParamSpec * pspec);
+static void _vala_app_settings_get_property (GObject * object, guint property_id, GValue * value, GParamSpec * pspec);
+static void _vala_app_settings_set_property (GObject * object, guint property_id, const GValue * value, GParamSpec * pspec);
 static void _vala_array_destroy (gpointer array, gint array_length, GDestroyNotify destroy_func);
 static void _vala_array_free (gpointer array, gint array_length, GDestroyNotify destroy_func);
 static gint _vala_array_length (gpointer array);
-static int _vala_strcmp0 (const char * str1, const char * str2);
 
 
-
-static char** _vala_array_dup3 (char** self, int length) {
-	char** result;
+static gchar** _vala_array_dup3 (gchar** self, int length) {
+	gchar** result;
 	int i;
-	result = g_new0 (char*, length + 1);
+	result = g_new0 (gchar*, length + 1);
 	for (i = 0; i < length; i++) {
 		result[i] = g_strdup (self[i]);
 	}
@@ -316,7 +316,7 @@ static char** _vala_array_dup3 (char** self, int length) {
 
 
 void build_job_copy (const BuildJob* self, BuildJob* dest) {
-	char** _tmp0_;
+	gchar** _tmp0_;
 	dest->must_succeed = self->must_succeed;
 	dest->post_processor = g_strdup (self->post_processor);
 	dest->command = g_strdup (self->command);
@@ -326,9 +326,9 @@ void build_job_copy (const BuildJob* self, BuildJob* dest) {
 
 
 void build_job_destroy (BuildJob* self) {
-	_g_free0 (self->post_processor);
-	_g_free0 (self->command);
-	self->command_args = (_vala_array_free (self->command_args, (*self).command_args_length1, (GDestroyNotify) g_free), NULL);
+	_g_free0 ((*self).post_processor);
+	_g_free0 ((*self).command);
+	(*self).command_args = (_vala_array_free ((*self).command_args, (*self).command_args_length1, (GDestroyNotify) g_free), NULL);
 }
 
 
@@ -368,10 +368,10 @@ void build_tool_copy (const BuildTool* self, BuildTool* dest) {
 
 
 void build_tool_destroy (BuildTool* self) {
-	_g_free0 (self->description);
-	_g_free0 (self->extensions);
-	_g_free0 (self->label);
-	_g_free0 (self->icon);
+	_g_free0 ((*self).description);
+	_g_free0 ((*self).extensions);
+	_g_free0 ((*self).label);
+	_g_free0 ((*self).icon);
 }
 
 
@@ -409,9 +409,9 @@ void most_used_symbol_copy (const MostUsedSymbol* self, MostUsedSymbol* dest) {
 
 
 void most_used_symbol_destroy (MostUsedSymbol* self) {
-	_g_free0 (self->id);
-	_g_free0 (self->latex_command);
-	_g_free0 (self->package_required);
+	_g_free0 ((*self).id);
+	_g_free0 ((*self).latex_command);
+	_g_free0 ((*self).package_required);
 }
 
 
@@ -462,106 +462,151 @@ static gpointer _g_object_ref0 (gpointer self) {
 
 AppSettings* app_settings_get_default (void) {
 	AppSettings* result = NULL;
+	AppSettings* _tmp1_;
 	if (app_settings_instance == NULL) {
-		AppSettings* _tmp0_;
-		app_settings_instance = (_tmp0_ = app_settings_new (), _g_object_unref0 (app_settings_instance), _tmp0_);
+		AppSettings* _tmp0_ = NULL;
+		_tmp0_ = app_settings_new ();
+		_g_object_unref0 (app_settings_instance);
+		app_settings_instance = _tmp0_;
 	}
-	result = _g_object_ref0 (app_settings_instance);
+	_tmp1_ = _g_object_ref0 (app_settings_instance);
+	result = _tmp1_;
 	return result;
 }
 
 
-static void _lambda6_ (GSettings* setting, const char* key, AppSettings* self) {
-	char* _tmp0_;
+static void _lambda6_ (GSettings* setting, const gchar* key, AppSettings* self) {
+	gchar* _tmp0_ = NULL;
+	gchar* _tmp1_;
+	gboolean _tmp2_;
 	g_return_if_fail (setting != NULL);
 	g_return_if_fail (key != NULL);
-	app_settings_set_system_font (self, _tmp0_ = g_settings_get_string (setting, key));
-	_g_free0 (_tmp0_);
-	if (g_settings_get_boolean (self->priv->editor, "use-default-font")) {
+	_tmp0_ = g_settings_get_string (setting, key);
+	_tmp1_ = _tmp0_;
+	app_settings_set_system_font (self, _tmp1_);
+	_g_free0 (_tmp1_);
+	_tmp2_ = g_settings_get_boolean (self->priv->editor, "use-default-font");
+	if (_tmp2_) {
 		app_settings_set_font (self, self->priv->_system_font);
 	}
 }
 
 
-static void __lambda6__g_settings_changed (GSettings* _sender, const char* key, gpointer self) {
+static void __lambda6__g_settings_changed (GSettings* _sender, const gchar* key, gpointer self) {
 	_lambda6_ (_sender, key, self);
 }
 
 
-static void _lambda81_ (GSettings* setting, const char* key, AppSettings* self) {
+static void _lambda84_ (GSettings* setting, const gchar* key, AppSettings* self) {
+	gboolean _tmp0_;
 	gboolean val;
-	char* _tmp0_;
-	char* font;
+	gchar* _tmp1_ = NULL;
+	gchar* _tmp4_;
+	gchar* font;
 	g_return_if_fail (setting != NULL);
 	g_return_if_fail (key != NULL);
-	val = g_settings_get_boolean (setting, key);
-	_tmp0_ = NULL;
+	_tmp0_ = g_settings_get_boolean (setting, key);
+	val = _tmp0_;
 	if (val) {
-		char* _tmp1_;
-		_tmp0_ = (_tmp1_ = g_strdup (self->priv->_system_font), _g_free0 (_tmp0_), _tmp1_);
+		gchar* _tmp2_;
+		_tmp2_ = g_strdup (self->priv->_system_font);
+		_g_free0 (_tmp1_);
+		_tmp1_ = _tmp2_;
 	} else {
-		char* _tmp2_;
-		_tmp0_ = (_tmp2_ = g_settings_get_string (self->priv->editor, "editor-font"), _g_free0 (_tmp0_), _tmp2_);
+		gchar* _tmp3_ = NULL;
+		_tmp3_ = g_settings_get_string (self->priv->editor, "editor-font");
+		_g_free0 (_tmp1_);
+		_tmp1_ = _tmp3_;
 	}
-	font = g_strdup (_tmp0_);
+	_tmp4_ = g_strdup (_tmp1_);
+	font = _tmp4_;
 	app_settings_set_font (self, font);
 	_g_free0 (font);
-	_g_free0 (_tmp0_);
+	_g_free0 (_tmp1_);
 }
 
 
-static void __lambda81__g_settings_changed (GSettings* _sender, const char* key, gpointer self) {
-	_lambda81_ (_sender, key, self);
+static void __lambda84__g_settings_changed (GSettings* _sender, const gchar* key, gpointer self) {
+	_lambda84_ (_sender, key, self);
 }
 
 
-static void _lambda82_ (GSettings* setting, const char* key, AppSettings* self) {
-	char* _tmp0_;
+static void _lambda85_ (GSettings* setting, const gchar* key, AppSettings* self) {
+	gboolean _tmp0_;
+	gchar* _tmp1_ = NULL;
+	gchar* _tmp2_;
 	g_return_if_fail (setting != NULL);
 	g_return_if_fail (key != NULL);
-	if (g_settings_get_boolean (self->priv->editor, "use-default-font")) {
+	_tmp0_ = g_settings_get_boolean (self->priv->editor, "use-default-font");
+	if (_tmp0_) {
 		return;
 	}
-	app_settings_set_font (self, _tmp0_ = g_settings_get_string (setting, key));
-	_g_free0 (_tmp0_);
+	_tmp1_ = g_settings_get_string (setting, key);
+	_tmp2_ = _tmp1_;
+	app_settings_set_font (self, _tmp2_);
+	_g_free0 (_tmp2_);
 }
 
 
-static void __lambda82__g_settings_changed (GSettings* _sender, const char* key, gpointer self) {
-	_lambda82_ (_sender, key, self);
+static void __lambda85__g_settings_changed (GSettings* _sender, const gchar* key, gpointer self) {
+	_lambda85_ (_sender, key, self);
 }
 
 
-static void _g_list_free_g_object_unref (GList* self) {
-	g_list_foreach (self, (GFunc) g_object_unref, NULL);
+static void _g_object_unref0_ (gpointer var) {
+	(var == NULL) ? NULL : (var = (g_object_unref (var), NULL));
+}
+
+
+static void _g_list_free__g_object_unref0_ (GList* self) {
+	g_list_foreach (self, (GFunc) _g_object_unref0_, NULL);
 	g_list_free (self);
 }
 
 
-static void _lambda83_ (GSettings* setting, const char* key, AppSettings* self) {
-	char* scheme_id;
+static void _lambda86_ (GSettings* setting, const gchar* key, AppSettings* self) {
+	gchar* _tmp0_ = NULL;
+	gchar* scheme_id;
+	GtkSourceStyleSchemeManager* _tmp1_ = NULL;
+	GtkSourceStyleSchemeManager* _tmp2_;
 	GtkSourceStyleSchemeManager* manager;
+	GtkSourceStyleScheme* _tmp3_ = NULL;
+	GtkSourceStyleScheme* _tmp4_;
 	GtkSourceStyleScheme* scheme;
+	Application* _tmp5_ = NULL;
+	Application* _tmp6_;
+	GList* _tmp7_ = NULL;
+	GList* _tmp8_;
 	g_return_if_fail (setting != NULL);
 	g_return_if_fail (key != NULL);
-	scheme_id = g_settings_get_string (setting, key);
-	manager = _g_object_ref0 (gtk_source_style_scheme_manager_get_default ());
-	scheme = _g_object_ref0 (gtk_source_style_scheme_manager_get_scheme (manager, scheme_id));
+	_tmp0_ = g_settings_get_string (setting, key);
+	scheme_id = _tmp0_;
+	_tmp1_ = gtk_source_style_scheme_manager_get_default ();
+	_tmp2_ = _g_object_ref0 (_tmp1_);
+	manager = _tmp2_;
+	_tmp3_ = gtk_source_style_scheme_manager_get_scheme (manager, scheme_id);
+	_tmp4_ = _g_object_ref0 (_tmp3_);
+	scheme = _tmp4_;
+	_tmp5_ = application_get_default ();
+	_tmp6_ = _tmp5_;
+	_tmp7_ = application_get_documents (_tmp6_);
+	_tmp8_ = _tmp7_;
+	_g_object_unref0 (_tmp6_);
 	{
-		Application* _tmp0_;
-		GList* _tmp1_;
 		GList* doc_collection;
 		GList* doc_it;
-		doc_collection = (_tmp1_ = application_get_documents (_tmp0_ = application_get_default ()), _g_object_unref0 (_tmp0_), _tmp1_);
+		doc_collection = _tmp8_;
 		for (doc_it = doc_collection; doc_it != NULL; doc_it = doc_it->next) {
+			Document* _tmp9_;
 			Document* doc;
-			doc = _g_object_ref0 ((Document*) doc_it->data);
+			_tmp9_ = _g_object_ref0 ((Document*) doc_it->data);
+			doc = _tmp9_;
 			{
 				gtk_source_buffer_set_style_scheme ((GtkSourceBuffer*) doc, scheme);
 				_g_object_unref0 (doc);
 			}
 		}
-		__g_list_free_g_object_unref0 (doc_collection);
+		__g_list_free__g_object_unref0_0 (doc_collection);
 	}
 	_g_object_unref0 (scheme);
 	_g_object_unref0 (manager);
@@ -569,216 +614,291 @@ static void _lambda83_ (GSettings* setting, const char* key, AppSettings* self)
 }
 
 
-static void __lambda83__g_settings_changed (GSettings* _sender, const char* key, gpointer self) {
-	_lambda83_ (_sender, key, self);
+static void __lambda86__g_settings_changed (GSettings* _sender, const gchar* key, gpointer self) {
+	_lambda86_ (_sender, key, self);
 }
 
 
-static void _lambda84_ (GSettings* setting, const char* key, AppSettings* self) {
+static void _lambda87_ (GSettings* setting, const gchar* key, AppSettings* self) {
 	guint val = 0U;
+	guint _tmp0_;
+	Application* _tmp1_ = NULL;
+	Application* _tmp2_;
+	GList* _tmp3_ = NULL;
+	GList* _tmp4_;
 	g_return_if_fail (setting != NULL);
 	g_return_if_fail (key != NULL);
 	g_settings_get (setting, key, "u", &val);
-	val = CLAMP (val, (guint) 1, (guint) 24);
+	_tmp0_ = CLAMP (val, (guint) 1, (guint) 24);
+	val = _tmp0_;
+	_tmp1_ = application_get_default ();
+	_tmp2_ = _tmp1_;
+	_tmp3_ = application_get_views (_tmp2_);
+	_tmp4_ = _tmp3_;
+	_g_object_unref0 (_tmp2_);
 	{
-		Application* _tmp0_;
-		GList* _tmp1_;
 		GList* view_collection;
 		GList* view_it;
-		view_collection = (_tmp1_ = application_get_views (_tmp0_ = application_get_default ()), _g_object_unref0 (_tmp0_), _tmp1_);
+		view_collection = _tmp4_;
 		for (view_it = view_collection; view_it != NULL; view_it = view_it->next) {
+			DocumentView* _tmp5_;
 			DocumentView* view;
-			view = _g_object_ref0 ((DocumentView*) view_it->data);
+			_tmp5_ = _g_object_ref0 ((DocumentView*) view_it->data);
+			view = _tmp5_;
 			{
 				gtk_source_view_set_tab_width ((GtkSourceView*) view, val);
 				_g_object_unref0 (view);
 			}
 		}
-		__g_list_free_g_object_unref0 (view_collection);
+		__g_list_free__g_object_unref0_0 (view_collection);
 	}
 }
 
 
-static void __lambda84__g_settings_changed (GSettings* _sender, const char* key, gpointer self) {
-	_lambda84_ (_sender, key, self);
+static void __lambda87__g_settings_changed (GSettings* _sender, const gchar* key, gpointer self) {
+	_lambda87_ (_sender, key, self);
 }
 
 
-static void _lambda85_ (GSettings* setting, const char* key, AppSettings* self) {
+static void _lambda88_ (GSettings* setting, const gchar* key, AppSettings* self) {
+	gboolean _tmp0_;
 	gboolean val;
+	Application* _tmp1_ = NULL;
+	Application* _tmp2_;
+	GList* _tmp3_ = NULL;
+	GList* _tmp4_;
 	g_return_if_fail (setting != NULL);
 	g_return_if_fail (key != NULL);
-	val = g_settings_get_boolean (setting, key);
+	_tmp0_ = g_settings_get_boolean (setting, key);
+	val = _tmp0_;
+	_tmp1_ = application_get_default ();
+	_tmp2_ = _tmp1_;
+	_tmp3_ = application_get_views (_tmp2_);
+	_tmp4_ = _tmp3_;
+	_g_object_unref0 (_tmp2_);
 	{
-		Application* _tmp0_;
-		GList* _tmp1_;
 		GList* view_collection;
 		GList* view_it;
-		view_collection = (_tmp1_ = application_get_views (_tmp0_ = application_get_default ()), _g_object_unref0 (_tmp0_), _tmp1_);
+		view_collection = _tmp4_;
 		for (view_it = view_collection; view_it != NULL; view_it = view_it->next) {
+			DocumentView* _tmp5_;
 			DocumentView* view;
-			view = _g_object_ref0 ((DocumentView*) view_it->data);
+			_tmp5_ = _g_object_ref0 ((DocumentView*) view_it->data);
+			view = _tmp5_;
 			{
 				gtk_source_view_set_insert_spaces_instead_of_tabs ((GtkSourceView*) view, val);
 				_g_object_unref0 (view);
 			}
 		}
-		__g_list_free_g_object_unref0 (view_collection);
+		__g_list_free__g_object_unref0_0 (view_collection);
 	}
 }
 
 
-static void __lambda85__g_settings_changed (GSettings* _sender, const char* key, gpointer self) {
-	_lambda85_ (_sender, key, self);
+static void __lambda88__g_settings_changed (GSettings* _sender, const gchar* key, gpointer self) {
+	_lambda88_ (_sender, key, self);
 }
 
 
-static void _lambda86_ (GSettings* setting, const char* key, AppSettings* self) {
+static void _lambda89_ (GSettings* setting, const gchar* key, AppSettings* self) {
+	gboolean _tmp0_;
 	gboolean val;
+	Application* _tmp1_ = NULL;
+	Application* _tmp2_;
+	GList* _tmp3_ = NULL;
+	GList* _tmp4_;
 	g_return_if_fail (setting != NULL);
 	g_return_if_fail (key != NULL);
-	val = g_settings_get_boolean (setting, key);
+	_tmp0_ = g_settings_get_boolean (setting, key);
+	val = _tmp0_;
+	_tmp1_ = application_get_default ();
+	_tmp2_ = _tmp1_;
+	_tmp3_ = application_get_views (_tmp2_);
+	_tmp4_ = _tmp3_;
+	_g_object_unref0 (_tmp2_);
 	{
-		Application* _tmp0_;
-		GList* _tmp1_;
 		GList* view_collection;
 		GList* view_it;
-		view_collection = (_tmp1_ = application_get_views (_tmp0_ = application_get_default ()), _g_object_unref0 (_tmp0_), _tmp1_);
+		view_collection = _tmp4_;
 		for (view_it = view_collection; view_it != NULL; view_it = view_it->next) {
+			DocumentView* _tmp5_;
 			DocumentView* view;
-			view = _g_object_ref0 ((DocumentView*) view_it->data);
+			_tmp5_ = _g_object_ref0 ((DocumentView*) view_it->data);
+			view = _tmp5_;
 			{
 				gtk_source_view_set_show_line_numbers ((GtkSourceView*) view, val);
 				_g_object_unref0 (view);
 			}
 		}
-		__g_list_free_g_object_unref0 (view_collection);
+		__g_list_free__g_object_unref0_0 (view_collection);
 	}
 }
 
 
-static void __lambda86__g_settings_changed (GSettings* _sender, const char* key, gpointer self) {
-	_lambda86_ (_sender, key, self);
+static void __lambda89__g_settings_changed (GSettings* _sender, const gchar* key, gpointer self) {
+	_lambda89_ (_sender, key, self);
 }
 
 
-static void _lambda87_ (GSettings* setting, const char* key, AppSettings* self) {
+static void _lambda90_ (GSettings* setting, const gchar* key, AppSettings* self) {
+	gboolean _tmp0_;
 	gboolean val;
+	Application* _tmp1_ = NULL;
+	Application* _tmp2_;
+	GList* _tmp3_ = NULL;
+	GList* _tmp4_;
 	g_return_if_fail (setting != NULL);
 	g_return_if_fail (key != NULL);
-	val = g_settings_get_boolean (setting, key);
+	_tmp0_ = g_settings_get_boolean (setting, key);
+	val = _tmp0_;
+	_tmp1_ = application_get_default ();
+	_tmp2_ = _tmp1_;
+	_tmp3_ = application_get_views (_tmp2_);
+	_tmp4_ = _tmp3_;
+	_g_object_unref0 (_tmp2_);
 	{
-		Application* _tmp0_;
-		GList* _tmp1_;
 		GList* view_collection;
 		GList* view_it;
-		view_collection = (_tmp1_ = application_get_views (_tmp0_ = application_get_default ()), _g_object_unref0 (_tmp0_), _tmp1_);
+		view_collection = _tmp4_;
 		for (view_it = view_collection; view_it != NULL; view_it = view_it->next) {
+			DocumentView* _tmp5_;
 			DocumentView* view;
-			view = _g_object_ref0 ((DocumentView*) view_it->data);
+			_tmp5_ = _g_object_ref0 ((DocumentView*) view_it->data);
+			view = _tmp5_;
 			{
 				gtk_source_view_set_highlight_current_line ((GtkSourceView*) view, val);
 				_g_object_unref0 (view);
 			}
 		}
-		__g_list_free_g_object_unref0 (view_collection);
+		__g_list_free__g_object_unref0_0 (view_collection);
 	}
 }
 
 
-static void __lambda87__g_settings_changed (GSettings* _sender, const char* key, gpointer self) {
-	_lambda87_ (_sender, key, self);
+static void __lambda90__g_settings_changed (GSettings* _sender, const gchar* key, gpointer self) {
+	_lambda90_ (_sender, key, self);
 }
 
 
-static void _lambda88_ (GSettings* setting, const char* key, AppSettings* self) {
+static void _lambda91_ (GSettings* setting, const gchar* key, AppSettings* self) {
+	gboolean _tmp0_;
 	gboolean val;
+	Application* _tmp1_ = NULL;
+	Application* _tmp2_;
+	GList* _tmp3_ = NULL;
+	GList* _tmp4_;
 	g_return_if_fail (setting != NULL);
 	g_return_if_fail (key != NULL);
-	val = g_settings_get_boolean (setting, key);
+	_tmp0_ = g_settings_get_boolean (setting, key);
+	val = _tmp0_;
+	_tmp1_ = application_get_default ();
+	_tmp2_ = _tmp1_;
+	_tmp3_ = application_get_documents (_tmp2_);
+	_tmp4_ = _tmp3_;
+	_g_object_unref0 (_tmp2_);
 	{
-		Application* _tmp0_;
-		GList* _tmp1_;
 		GList* doc_collection;
 		GList* doc_it;
-		doc_collection = (_tmp1_ = application_get_documents (_tmp0_ = application_get_default ()), _g_object_unref0 (_tmp0_), _tmp1_);
+		doc_collection = _tmp4_;
 		for (doc_it = doc_collection; doc_it != NULL; doc_it = doc_it->next) {
+			Document* _tmp5_;
 			Document* doc;
-			doc = _g_object_ref0 ((Document*) doc_it->data);
+			_tmp5_ = _g_object_ref0 ((Document*) doc_it->data);
+			doc = _tmp5_;
 			{
 				gtk_source_buffer_set_highlight_matching_brackets ((GtkSourceBuffer*) doc, val);
 				_g_object_unref0 (doc);
 			}
 		}
-		__g_list_free_g_object_unref0 (doc_collection);
+		__g_list_free__g_object_unref0_0 (doc_collection);
 	}
 }
 
 
-static void __lambda88__g_settings_changed (GSettings* _sender, const char* key, gpointer self) {
-	_lambda88_ (_sender, key, self);
+static void __lambda91__g_settings_changed (GSettings* _sender, const gchar* key, gpointer self) {
+	_lambda91_ (_sender, key, self);
 }
 
 
-static void _lambda89_ (GSettings* setting, const char* key, AppSettings* self) {
+static void _lambda92_ (GSettings* setting, const gchar* key, AppSettings* self) {
+	gboolean _tmp0_;
 	gboolean val;
+	Application* _tmp1_ = NULL;
+	Application* _tmp2_;
+	GList* _tmp3_ = NULL;
+	GList* _tmp4_;
 	g_return_if_fail (setting != NULL);
 	g_return_if_fail (key != NULL);
-	val = g_settings_get_boolean (setting, key);
+	_tmp0_ = g_settings_get_boolean (setting, key);
+	val = _tmp0_;
+	_tmp1_ = application_get_default ();
+	_tmp2_ = _tmp1_;
+	_tmp3_ = application_get_documents (_tmp2_);
+	_tmp4_ = _tmp3_;
+	_g_object_unref0 (_tmp2_);
 	{
-		Application* _tmp0_;
-		GList* _tmp1_;
 		GList* doc_collection;
 		GList* doc_it;
-		doc_collection = (_tmp1_ = application_get_documents (_tmp0_ = application_get_default ()), _g_object_unref0 (_tmp0_), _tmp1_);
+		doc_collection = _tmp4_;
 		for (doc_it = doc_collection; doc_it != NULL; doc_it = doc_it->next) {
+			Document* _tmp5_;
 			Document* doc;
-			doc = _g_object_ref0 ((Document*) doc_it->data);
+			_tmp5_ = _g_object_ref0 ((Document*) doc_it->data);
+			doc = _tmp5_;
 			{
 				document_tab_set_auto_save (doc->tab, val);
 				_g_object_unref0 (doc);
 			}
 		}
-		__g_list_free_g_object_unref0 (doc_collection);
+		__g_list_free__g_object_unref0_0 (doc_collection);
 	}
 }
 
 
-static void __lambda89__g_settings_changed (GSettings* _sender, const char* key, gpointer self) {
-	_lambda89_ (_sender, key, self);
+static void __lambda92__g_settings_changed (GSettings* _sender, const gchar* key, gpointer self) {
+	_lambda92_ (_sender, key, self);
 }
 
 
-static void _lambda90_ (GSettings* setting, const char* key, AppSettings* self) {
+static void _lambda93_ (GSettings* setting, const gchar* key, AppSettings* self) {
 	guint val = 0U;
+	Application* _tmp0_ = NULL;
+	Application* _tmp1_;
+	GList* _tmp2_ = NULL;
+	GList* _tmp3_;
 	g_return_if_fail (setting != NULL);
 	g_return_if_fail (key != NULL);
 	g_settings_get (setting, key, "u", &val);
+	_tmp0_ = application_get_default ();
+	_tmp1_ = _tmp0_;
+	_tmp2_ = application_get_documents (_tmp1_);
+	_tmp3_ = _tmp2_;
+	_g_object_unref0 (_tmp1_);
 	{
-		Application* _tmp0_;
-		GList* _tmp1_;
 		GList* doc_collection;
 		GList* doc_it;
-		doc_collection = (_tmp1_ = application_get_documents (_tmp0_ = application_get_default ()), _g_object_unref0 (_tmp0_), _tmp1_);
+		doc_collection = _tmp3_;
 		for (doc_it = doc_collection; doc_it != NULL; doc_it = doc_it->next) {
+			Document* _tmp4_;
 			Document* doc;
-			doc = _g_object_ref0 ((Document*) doc_it->data);
+			_tmp4_ = _g_object_ref0 ((Document*) doc_it->data);
+			doc = _tmp4_;
 			{
 				document_tab_set_auto_save_interval (doc->tab, val);
 				_g_object_unref0 (doc);
 			}
 		}
-		__g_list_free_g_object_unref0 (doc_collection);
+		__g_list_free__g_object_unref0_0 (doc_collection);
 	}
 }
 
 
-static void __lambda90__g_settings_changed (GSettings* _sender, const char* key, gpointer self) {
-	_lambda90_ (_sender, key, self);
+static void __lambda93__g_settings_changed (GSettings* _sender, const gchar* key, gpointer self) {
+	_lambda93_ (_sender, key, self);
 }
 
 
-static gboolean _lambda92_ (AppSettings* self) {
+static gboolean _lambda95_ (AppSettings* self) {
 	gboolean result = FALSE;
 	self->priv->timeout_id = (guint) 0;
 	symbols_reload_most_used_symbols ();
@@ -787,87 +907,119 @@ static gboolean _lambda92_ (AppSettings* self) {
 }
 
 
-static gboolean __lambda92__gsource_func (gpointer self) {
+static gboolean __lambda95__gsource_func (gpointer self) {
 	gboolean result;
-	result = _lambda92_ (self);
+	result = _lambda95_ (self);
 	return result;
 }
 
 
-static void _lambda91_ (GSettings* setting, const char* key, AppSettings* self) {
+static void _lambda94_ (GSettings* setting, const gchar* key, AppSettings* self) {
+	guint _tmp0_;
 	g_return_if_fail (setting != NULL);
 	g_return_if_fail (key != NULL);
 	if (self->priv->timeout_id != 0) {
 		g_source_remove (self->priv->timeout_id);
 	}
-	self->priv->timeout_id = g_timeout_add_seconds_full (G_PRIORITY_DEFAULT, (guint) 1, __lambda92__gsource_func, g_object_ref (self), g_object_unref);
+	_tmp0_ = g_timeout_add_seconds_full (G_PRIORITY_DEFAULT, (guint) 1, __lambda95__gsource_func, g_object_ref (self), g_object_unref);
+	self->priv->timeout_id = _tmp0_;
 }
 
 
-static void __lambda91__g_settings_changed (GSettings* _sender, const char* key, gpointer self) {
-	_lambda91_ (_sender, key, self);
+static void __lambda94__g_settings_changed (GSettings* _sender, const gchar* key, gpointer self) {
+	_lambda94_ (_sender, key, self);
 }
 
 
 static void app_settings_initialize (AppSettings* self) {
+	GSettings* _tmp0_ = NULL;
+	GSettings* _tmp1_;
 	GSettings* prefs;
-	GSettings* _tmp0_;
+	GSettings* _tmp2_ = NULL;
+	GSettings* _tmp3_;
 	g_return_if_fail (self != NULL);
-	prefs = _g_object_ref0 (g_settings_get_child ((GSettings*) self, "preferences"));
-	self->priv->editor = (_tmp0_ = _g_object_ref0 (g_settings_get_child (prefs, "editor")), _g_object_unref0 (self->priv->editor), _tmp0_);
+	_tmp0_ = g_settings_get_child ((GSettings*) self, "preferences");
+	_tmp1_ = _g_object_ref0 (_tmp0_);
+	prefs = _tmp1_;
+	_tmp2_ = g_settings_get_child (prefs, "editor");
+	_tmp3_ = _g_object_ref0 (_tmp2_);
+	_g_object_unref0 (self->priv->editor);
+	self->priv->editor = _tmp3_;
 	if (!DESKTOP_SCHEMAS) {
 		app_settings_set_system_font (self, "Monospace 10");
 	} else {
-		GSettings* _tmp1_;
-		char* _tmp2_;
-		self->priv->desktop_interface = (_tmp1_ = g_settings_new ("org.gnome.desktop.interface"), _g_object_unref0 (self->priv->desktop_interface), _tmp1_);
-		app_settings_set_system_font (self, _tmp2_ = g_settings_get_string (self->priv->desktop_interface, "monospace-font-name"));
-		_g_free0 (_tmp2_);
+		GSettings* _tmp4_ = NULL;
+		gchar* _tmp5_ = NULL;
+		gchar* _tmp6_;
+		_tmp4_ = g_settings_new ("org.gnome.desktop.interface");
+		_g_object_unref0 (self->priv->desktop_interface);
+		self->priv->desktop_interface = _tmp4_;
+		_tmp5_ = g_settings_get_string (self->priv->desktop_interface, "monospace-font-name");
+		_tmp6_ = _tmp5_;
+		app_settings_set_system_font (self, _tmp6_);
+		_g_free0 (_tmp6_);
 		g_signal_connect_object (self->priv->desktop_interface, "changed::monospace-font-name", (GCallback) __lambda6__g_settings_changed, self, 0);
 	}
-	g_signal_connect_object (self->priv->editor, "changed::use-default-font", (GCallback) __lambda81__g_settings_changed, self, 0);
-	g_signal_connect_object (self->priv->editor, "changed::editor-font", (GCallback) __lambda82__g_settings_changed, self, 0);
-	g_signal_connect_object (self->priv->editor, "changed::scheme", (GCallback) __lambda83__g_settings_changed, self, 0);
-	g_signal_connect_object (self->priv->editor, "changed::tabs-size", (GCallback) __lambda84__g_settings_changed, self, 0);
-	g_signal_connect_object (self->priv->editor, "changed::insert-spaces", (GCallback) __lambda85__g_settings_changed, self, 0);
-	g_signal_connect_object (self->priv->editor, "changed::display-line-numbers", (GCallback) __lambda86__g_settings_changed, self, 0);
-	g_signal_connect_object (self->priv->editor, "changed::highlight-current-line", (GCallback) __lambda87__g_settings_changed, self, 0);
-	g_signal_connect_object (self->priv->editor, "changed::bracket-matching", (GCallback) __lambda88__g_settings_changed, self, 0);
-	g_signal_connect_object (self->priv->editor, "changed::auto-save", (GCallback) __lambda89__g_settings_changed, self, 0);
-	g_signal_connect_object (self->priv->editor, "changed::auto-save-interval", (GCallback) __lambda90__g_settings_changed, self, 0);
-	g_signal_connect_object (self->priv->editor, "changed::nb-most-used-symbols", (GCallback) __lambda91__g_settings_changed, self, 0);
+	g_signal_connect_object (self->priv->editor, "changed::use-default-font", (GCallback) __lambda84__g_settings_changed, self, 0);
+	g_signal_connect_object (self->priv->editor, "changed::editor-font", (GCallback) __lambda85__g_settings_changed, self, 0);
+	g_signal_connect_object (self->priv->editor, "changed::scheme", (GCallback) __lambda86__g_settings_changed, self, 0);
+	g_signal_connect_object (self->priv->editor, "changed::tabs-size", (GCallback) __lambda87__g_settings_changed, self, 0);
+	g_signal_connect_object (self->priv->editor, "changed::insert-spaces", (GCallback) __lambda88__g_settings_changed, self, 0);
+	g_signal_connect_object (self->priv->editor, "changed::display-line-numbers", (GCallback) __lambda89__g_settings_changed, self, 0);
+	g_signal_connect_object (self->priv->editor, "changed::highlight-current-line", (GCallback) __lambda90__g_settings_changed, self, 0);
+	g_signal_connect_object (self->priv->editor, "changed::bracket-matching", (GCallback) __lambda91__g_settings_changed, self, 0);
+	g_signal_connect_object (self->priv->editor, "changed::auto-save", (GCallback) __lambda92__g_settings_changed, self, 0);
+	g_signal_connect_object (self->priv->editor, "changed::auto-save-interval", (GCallback) __lambda93__g_settings_changed, self, 0);
+	g_signal_connect_object (self->priv->editor, "changed::nb-most-used-symbols", (GCallback) __lambda94__g_settings_changed, self, 0);
 	_g_object_unref0 (prefs);
 }
 
 
-static void app_settings_set_font (AppSettings* self, const char* font) {
+static void app_settings_set_font (AppSettings* self, const gchar* font) {
+	Application* _tmp0_ = NULL;
+	Application* _tmp1_;
+	GList* _tmp2_ = NULL;
+	GList* _tmp3_;
 	g_return_if_fail (self != NULL);
 	g_return_if_fail (font != NULL);
+	_tmp0_ = application_get_default ();
+	_tmp1_ = _tmp0_;
+	_tmp2_ = application_get_views (_tmp1_);
+	_tmp3_ = _tmp2_;
+	_g_object_unref0 (_tmp1_);
 	{
-		Application* _tmp0_;
-		GList* _tmp1_;
 		GList* view_collection;
 		GList* view_it;
-		view_collection = (_tmp1_ = application_get_views (_tmp0_ = application_get_default ()), _g_object_unref0 (_tmp0_), _tmp1_);
+		view_collection = _tmp3_;
 		for (view_it = view_collection; view_it != NULL; view_it = view_it->next) {
+			DocumentView* _tmp4_;
 			DocumentView* view;
-			view = _g_object_ref0 ((DocumentView*) view_it->data);
+			_tmp4_ = _g_object_ref0 ((DocumentView*) view_it->data);
+			view = _tmp4_;
 			{
 				document_view_set_font_from_string (view, font);
 				_g_object_unref0 (view);
 			}
 		}
-		__g_list_free_g_object_unref0 (view_collection);
+		__g_list_free__g_object_unref0_0 (view_collection);
 	}
 }
 
 
 GeeList* app_settings_get_most_used_symbols (AppSettings* self) {
 	GeeList* result = NULL;
+	gint _tmp0_;
 	gint max;
+	gint _tmp1_;
+	gint _tmp2_;
+	GeeList* _tmp3_ = NULL;
 	g_return_val_if_fail (self != NULL, NULL);
-	max = g_settings_get_int (self->priv->editor, "nb-most-used-symbols");
-	result = gee_abstract_list_slice ((GeeAbstractList*) self->priv->most_used_symbols, 0, MIN (max, gee_collection_get_size ((GeeCollection*) self->priv->most_used_symbols)));
+	_tmp0_ = g_settings_get_int (self->priv->editor, "nb-most-used-symbols");
+	max = _tmp0_;
+	_tmp1_ = gee_collection_get_size ((GeeCollection*) self->priv->most_used_symbols);
+	_tmp2_ = MIN (max, _tmp1_);
+	_tmp3_ = gee_abstract_list_slice ((GeeAbstractList*) self->priv->most_used_symbols, 0, _tmp2_);
+	result = _tmp3_;
 	return result;
 }
 
@@ -879,42 +1031,64 @@ void app_settings_clear_most_used_symbols (AppSettings* self) {
 }
 
 
-void app_settings_add_symbol (AppSettings* self, const char* id, const char* command, const char* package) {
+void app_settings_add_symbol (AppSettings* self, const gchar* id, const gchar* command, const gchar* package) {
+	gint _tmp0_;
 	gint max;
 	gint i;
 	MostUsedSymbol new_symbol = {0};
-	char* _tmp4_;
-	char* _tmp5_;
-	char* _tmp6_;
+	gchar* _tmp10_;
+	gchar* _tmp11_;
+	gchar* _tmp12_;
+	gint _tmp13_;
 	g_return_if_fail (self != NULL);
 	g_return_if_fail (id != NULL);
 	g_return_if_fail (command != NULL);
 	self->priv->mus_modified = TRUE;
-	max = g_settings_get_int (self->priv->editor, "nb-most-used-symbols");
+	_tmp0_ = g_settings_get_int (self->priv->editor, "nb-most-used-symbols");
+	max = _tmp0_;
 	i = 0;
 	{
-		GeeIterator* _mus_it;
-		_mus_it = gee_abstract_collection_iterator ((GeeAbstractCollection*) self->priv->most_used_symbols);
+		GeeLinkedList* _tmp1_;
+		GeeLinkedList* _mus_list;
+		gint _tmp2_;
+		gint _mus_size;
+		gint _mus_index;
+		_tmp1_ = _g_object_ref0 (self->priv->most_used_symbols);
+		_mus_list = _tmp1_;
+		_tmp2_ = gee_collection_get_size ((GeeCollection*) _mus_list);
+		_mus_size = _tmp2_;
+		_mus_index = -1;
 		while (TRUE) {
-			MostUsedSymbol* _tmp0_;
-			MostUsedSymbol _tmp1_ = {0};
-			MostUsedSymbol _tmp2_;
+			gpointer _tmp3_ = NULL;
+			MostUsedSymbol* _tmp4_;
+			MostUsedSymbol _tmp5_;
+			MostUsedSymbol _tmp6_ = {0};
+			MostUsedSymbol _tmp7_;
 			MostUsedSymbol mus;
-			if (!gee_iterator_next (_mus_it)) {
+			_mus_index = _mus_index + 1;
+			if (!(_mus_index < _mus_size)) {
 				break;
 			}
-			mus = (_tmp2_ = (most_used_symbol_copy (_tmp0_ = (MostUsedSymbol*) gee_iterator_get (_mus_it), &_tmp1_), _tmp1_), _most_used_symbol_free0 (_tmp0_), _tmp2_);
-			if (_vala_strcmp0 (mus.id, id) == 0) {
+			_tmp3_ = gee_abstract_list_get ((GeeAbstractList*) _mus_list, _mus_index);
+			_tmp4_ = (MostUsedSymbol*) _tmp3_;
+			most_used_symbol_copy (_tmp4_, &_tmp6_);
+			_tmp5_ = _tmp6_;
+			_tmp7_ = _tmp5_;
+			_most_used_symbol_free0 (_tmp4_);
+			mus = _tmp7_;
+			if (g_strcmp0 (mus.id, id) == 0) {
+				gint _tmp8_;
 				gint new_i;
-				gboolean _tmp3_ = FALSE;
+				gboolean _tmp9_ = FALSE;
 				mus.num++;
-				new_i = app_settings_sort_most_used_symbol (self, i, &mus);
+				_tmp8_ = app_settings_sort_most_used_symbol (self, i, &mus);
+				new_i = _tmp8_;
 				if (new_i != i) {
-					_tmp3_ = new_i < max;
+					_tmp9_ = new_i < max;
 				} else {
-					_tmp3_ = FALSE;
+					_tmp9_ = FALSE;
 				}
-				if (_tmp3_) {
+				if (_tmp9_) {
 					if (i >= max) {
 						symbols_remove_most_used_symbol (max - 1);
 						symbols_insert_most_used_symbol (new_i, &mus);
@@ -923,22 +1097,31 @@ void app_settings_add_symbol (AppSettings* self, const char* id, const char* com
 					}
 				}
 				most_used_symbol_destroy (&mus);
-				_g_object_unref0 (_mus_it);
+				_g_object_unref0 (_mus_list);
 				return;
 			}
 			i++;
 			most_used_symbol_destroy (&mus);
 		}
-		_g_object_unref0 (_mus_it);
+		_g_object_unref0 (_mus_list);
 	}
 	memset (&new_symbol, 0, sizeof (MostUsedSymbol));
-	new_symbol.id = (_tmp4_ = g_strdup (id), _g_free0 (new_symbol.id), _tmp4_);
-	new_symbol.latex_command = (_tmp5_ = g_strdup (command), _g_free0 (new_symbol.latex_command), _tmp5_);
-	new_symbol.package_required = (_tmp6_ = g_strdup (package), _g_free0 (new_symbol.package_required), _tmp6_);
+	_tmp10_ = g_strdup (id);
+	_g_free0 (new_symbol.id);
+	new_symbol.id = _tmp10_;
+	_tmp11_ = g_strdup (command);
+	_g_free0 (new_symbol.latex_command);
+	new_symbol.latex_command = _tmp11_;
+	_tmp12_ = g_strdup (package);
+	_g_free0 (new_symbol.package_required);
+	new_symbol.package_required = _tmp12_;
 	new_symbol.num = (guint) 1;
 	gee_abstract_collection_add ((GeeAbstractCollection*) self->priv->most_used_symbols, &new_symbol);
-	if (gee_collection_get_size ((GeeCollection*) self->priv->most_used_symbols) <= max) {
-		symbols_insert_most_used_symbol (gee_collection_get_size ((GeeCollection*) self->priv->most_used_symbols) - 1, &new_symbol);
+	_tmp13_ = gee_collection_get_size ((GeeCollection*) self->priv->most_used_symbols);
+	if (_tmp13_ <= max) {
+		gint _tmp14_;
+		_tmp14_ = gee_collection_get_size ((GeeCollection*) self->priv->most_used_symbols);
+		symbols_insert_most_used_symbol (_tmp14_ - 1, &new_symbol);
 	}
 	most_used_symbol_destroy (&new_symbol);
 }
@@ -958,9 +1141,11 @@ static gint app_settings_sort_most_used_symbol (AppSettings* self, gint index, M
 		new_index = index - 1;
 		_tmp0_ = TRUE;
 		while (TRUE) {
-			MostUsedSymbol* _tmp1_;
-			MostUsedSymbol _tmp2_ = {0};
+			gpointer _tmp1_ = NULL;
+			MostUsedSymbol* _tmp2_;
 			MostUsedSymbol _tmp3_;
+			MostUsedSymbol _tmp4_ = {0};
+			MostUsedSymbol _tmp5_;
 			MostUsedSymbol symbol;
 			if (!_tmp0_) {
 				new_index--;
@@ -969,7 +1154,13 @@ static gint app_settings_sort_most_used_symbol (AppSettings* self, gint index, M
 			if (!(new_index >= 0)) {
 				break;
 			}
-			symbol = (_tmp3_ = (most_used_symbol_copy (_tmp1_ = (MostUsedSymbol*) gee_abstract_list_get ((GeeAbstractList*) self->priv->most_used_symbols, new_index), &_tmp2_), _tmp2_), _most_used_symbol_free0 (_tmp1_), _tmp3_);
+			_tmp1_ = gee_abstract_list_get ((GeeAbstractList*) self->priv->most_used_symbols, new_index);
+			_tmp2_ = (MostUsedSymbol*) _tmp1_;
+			most_used_symbol_copy (_tmp2_, &_tmp4_);
+			_tmp3_ = _tmp4_;
+			_tmp5_ = _tmp3_;
+			_most_used_symbol_free0 (_tmp2_);
+			symbol = _tmp5_;
 			if (symbol.num >= (*mus).num) {
 				new_index++;
 				most_used_symbol_destroy (&symbol);
@@ -982,9 +1173,11 @@ static gint app_settings_sort_most_used_symbol (AppSettings* self, gint index, M
 		new_index = 0;
 	}
 	if (new_index < index) {
-		MostUsedSymbol* _tmp4_;
-		_tmp4_ = (MostUsedSymbol*) gee_abstract_list_remove_at ((GeeAbstractList*) self->priv->most_used_symbols, index);
-		_most_used_symbol_free0 (_tmp4_);
+		gpointer _tmp6_ = NULL;
+		MostUsedSymbol* _tmp7_;
+		_tmp6_ = gee_abstract_list_remove_at ((GeeAbstractList*) self->priv->most_used_symbols, index);
+		_tmp7_ = (MostUsedSymbol*) _tmp6_;
+		_most_used_symbol_free0 (_tmp7_);
 		gee_abstract_list_insert ((GeeAbstractList*) self->priv->most_used_symbols, new_index, mus);
 	} else {
 		gee_abstract_list_set ((GeeAbstractList*) self->priv->most_used_symbols, index, mus);
@@ -994,57 +1187,65 @@ static gint app_settings_sort_most_used_symbol (AppSettings* self, gint index, M
 }
 
 
-static void _app_settings_mus_parser_start_gmarkup_parser_start_element_func (GMarkupParseContext* context, const char* element_name, char** attribute_names, char** attribute_values, gpointer self, GError** error) {
+static void _app_settings_mus_parser_start_gmarkup_parser_start_element_func (GMarkupParseContext* context, const gchar* element_name, gchar** attribute_names, gchar** attribute_values, gpointer self, GError** error) {
 	app_settings_mus_parser_start (self, context, element_name, attribute_names, _vala_array_length (attribute_names), attribute_values, _vala_array_length (attribute_values), error);
 }
 
 
 static void app_settings_load_most_used_symbols (AppSettings* self) {
-	GeeLinkedList* _tmp0_;
+	GeeLinkedList* _tmp0_ = NULL;
+	GFile* _tmp1_ = NULL;
 	GFile* file;
+	gboolean _tmp2_;
+	gchar* contents = NULL;
+	gchar* _tmp3_ = NULL;
+	GMarkupParser _tmp4_ = {0};
+	GMarkupParser parser;
+	GMarkupParseContext* _tmp5_ = NULL;
+	GMarkupParseContext* context;
 	GError * _inner_error_ = NULL;
 	g_return_if_fail (self != NULL);
-	self->priv->most_used_symbols = (_tmp0_ = gee_linked_list_new (TYPE_MOST_USED_SYMBOL, (GBoxedCopyFunc) most_used_symbol_dup, most_used_symbol_free, NULL), _g_object_unref0 (self->priv->most_used_symbols), _tmp0_);
-	file = app_settings_get_file_most_used_symbols (self);
-	if (!g_file_query_exists (file, NULL)) {
+	_tmp0_ = gee_linked_list_new (TYPE_MOST_USED_SYMBOL, (GBoxedCopyFunc) most_used_symbol_dup, most_used_symbol_free, NULL);
+	_g_object_unref0 (self->priv->most_used_symbols);
+	self->priv->most_used_symbols = _tmp0_;
+	_tmp1_ = app_settings_get_file_most_used_symbols (self);
+	file = _tmp1_;
+	_tmp2_ = g_file_query_exists (file, NULL);
+	if (!_tmp2_) {
 		_g_object_unref0 (file);
 		return;
 	}
-	{
-		char* contents;
-		char* _tmp1_ = NULL;
-		char* _tmp2_;
-		GMarkupParser _tmp3_ = {0};
-		GMarkupParser parser;
-		GMarkupParseContext* context;
-		contents = NULL;
-		g_file_load_contents (file, NULL, &_tmp1_, NULL, NULL, &_inner_error_);
-		contents = (_tmp2_ = _tmp1_, _g_free0 (contents), _tmp2_);
-		if (_inner_error_ != NULL) {
-			_g_free0 (contents);
-			goto __catch19_g_error;
-		}
-		parser = (_tmp3_.start_element = _app_settings_mus_parser_start_gmarkup_parser_start_element_func, _tmp3_.end_element = NULL, _tmp3_.text = NULL, _tmp3_.passthrough = NULL, _tmp3_.error = NULL, _tmp3_);
-		context = g_markup_parse_context_new (&parser, 0, self, NULL);
-		g_markup_parse_context_parse (context, contents, (gssize) (-1), &_inner_error_);
-		if (_inner_error_ != NULL) {
-			_g_markup_parse_context_free0 (context);
-			_g_free0 (contents);
-			goto __catch19_g_error;
-		}
+	g_file_load_contents (file, NULL, &_tmp3_, NULL, NULL, &_inner_error_);
+	_g_free0 (contents);
+	contents = _tmp3_;
+	if (_inner_error_ != NULL) {
+		_g_free0 (contents);
+		goto __catch19_g_error;
+	}
+	_tmp4_.start_element = _app_settings_mus_parser_start_gmarkup_parser_start_element_func;
+	_tmp4_.end_element = NULL;
+	_tmp4_.text = NULL;
+	_tmp4_.passthrough = NULL;
+	_tmp4_.error = NULL;
+	parser = _tmp4_;
+	_tmp5_ = g_markup_parse_context_new (&parser, 0, self, NULL);
+	context = _tmp5_;
+	g_markup_parse_context_parse (context, contents, (gssize) (-1), &_inner_error_);
+	if (_inner_error_ != NULL) {
 		_g_markup_parse_context_free0 (context);
 		_g_free0 (contents);
+		goto __catch19_g_error;
 	}
+	_g_markup_parse_context_free0 (context);
+	_g_free0 (contents);
 	goto __finally19;
 	__catch19_g_error:
 	{
 		GError * e;
 		e = _inner_error_;
 		_inner_error_ = NULL;
-		{
-			fprintf (stderr, "Warning: impossible to load most used symbols: %s\n", e->message);
-			_g_error_free0 (e);
-		}
+		fprintf (stderr, "Warning: impossible to load most used symbols: %s\n", e->message);
+		_g_error_free0 (e);
 	}
 	__finally19:
 	if (_inner_error_ != NULL) {
@@ -1057,127 +1258,160 @@ static void app_settings_load_most_used_symbols (AppSettings* self) {
 }
 
 
-static void app_settings_mus_parser_start (AppSettings* self, GMarkupParseContext* context, const char* name, char** attr_names, int attr_names_length1, char** attr_values, int attr_values_length1, GError** error) {
-	const char* _tmp13_;
-	GQuark _tmp14_;
-	static GQuark _tmp14__label0 = 0;
-	static GQuark _tmp14__label1 = 0;
+static void app_settings_mus_parser_start (AppSettings* self, GMarkupParseContext* context, const gchar* name, gchar** attr_names, int attr_names_length1, gchar** attr_values, int attr_values_length1, GError** error) {
+	const gchar* _tmp0_;
+	GQuark _tmp1_;
+	static GQuark _tmp1__label0 = 0;
+	static GQuark _tmp1__label1 = 0;
 	GError * _inner_error_ = NULL;
 	g_return_if_fail (self != NULL);
 	g_return_if_fail (context != NULL);
 	g_return_if_fail (name != NULL);
-	_tmp13_ = name;
-	_tmp14_ = (NULL == _tmp13_) ? 0 : g_quark_from_string (_tmp13_);
-	if (_tmp14_ == ((0 != _tmp14__label0) ? _tmp14__label0 : (_tmp14__label0 = g_quark_from_static_string ("symbols"))))
-	switch (0) {
-		default:
-		{
-			return;
+	_tmp0_ = name;
+	_tmp1_ = (NULL == _tmp0_) ? 0 : g_quark_from_string (_tmp0_);
+	if (_tmp1_ == ((0 != _tmp1__label0) ? _tmp1__label0 : (_tmp1__label0 = g_quark_from_static_string ("symbols")))) {
+		switch (0) {
+			default:
+			{
+				return;
+			}
 		}
-	} else if (_tmp14_ == ((0 != _tmp14__label1) ? _tmp14__label1 : (_tmp14__label1 = g_quark_from_static_string ("symbol"))))
-	switch (0) {
-		default:
-		{
-			MostUsedSymbol symbol = {0};
-			memset (&symbol, 0, sizeof (MostUsedSymbol));
+	} else if (_tmp1_ == ((0 != _tmp1__label1) ? _tmp1__label1 : (_tmp1__label1 = g_quark_from_static_string ("symbol")))) {
+		switch (0) {
+			default:
 			{
-				gint i;
-				i = 0;
+				MostUsedSymbol symbol = {0};
+				memset (&symbol, 0, sizeof (MostUsedSymbol));
 				{
-					gboolean _tmp0_;
-					_tmp0_ = TRUE;
-					while (TRUE) {
-						const char* _tmp8_;
-						GQuark _tmp9_;
-						static GQuark _tmp9__label0 = 0;
-						static GQuark _tmp9__label1 = 0;
-						static GQuark _tmp9__label2 = 0;
-						static GQuark _tmp9__label3 = 0;
-						if (!_tmp0_) {
-							i++;
-						}
-						_tmp0_ = FALSE;
-						if (!(i < attr_names_length1)) {
-							break;
-						}
-						_tmp8_ = attr_names[i];
-						_tmp9_ = (NULL == _tmp8_) ? 0 : g_quark_from_string (_tmp8_);
-						if (_tmp9_ == ((0 != _tmp9__label0) ? _tmp9__label0 : (_tmp9__label0 = g_quark_from_static_string ("id"))))
-						switch (0) {
-							default:
-							{
-								char* _tmp1_;
-								symbol.id = (_tmp1_ = g_strdup (attr_values[i]), _g_free0 (symbol.id), _tmp1_);
-								break;
+					gint i;
+					i = 0;
+					{
+						gboolean _tmp2_;
+						_tmp2_ = TRUE;
+						while (TRUE) {
+							const gchar* _tmp3_;
+							GQuark _tmp4_;
+							static GQuark _tmp4__label0 = 0;
+							static GQuark _tmp4__label1 = 0;
+							static GQuark _tmp4__label2 = 0;
+							static GQuark _tmp4__label3 = 0;
+							if (!_tmp2_) {
+								i++;
 							}
-						} else if (_tmp9_ == ((0 != _tmp9__label1) ? _tmp9__label1 : (_tmp9__label1 = g_quark_from_static_string ("command"))))
-						switch (0) {
-							default:
-							{
-								char* _tmp2_;
-								symbol.latex_command = (_tmp2_ = g_strdup (attr_values[i]), _g_free0 (symbol.latex_command), _tmp2_);
+							_tmp2_ = FALSE;
+							if (!(i < attr_names_length1)) {
 								break;
 							}
-						} else if (_tmp9_ == ((0 != _tmp9__label2) ? _tmp9__label2 : (_tmp9__label2 = g_quark_from_static_string ("package"))))
-						switch (0) {
-							default:
-							{
-								const char* _tmp3_;
-								char* _tmp4_;
-								_tmp3_ = NULL;
-								if (_vala_strcmp0 (attr_values[i], "") != 0) {
-									_tmp3_ = attr_values[i];
-								} else {
-									_tmp3_ = NULL;
+							_tmp3_ = attr_names[i];
+							_tmp4_ = (NULL == _tmp3_) ? 0 : g_quark_from_string (_tmp3_);
+							if (_tmp4_ == ((0 != _tmp4__label0) ? _tmp4__label0 : (_tmp4__label0 = g_quark_from_static_string ("id")))) {
+								switch (0) {
+									default:
+									{
+										gchar* _tmp5_;
+										_tmp5_ = g_strdup (attr_values[i]);
+										_g_free0 (symbol.id);
+										symbol.id = _tmp5_;
+										break;
+									}
 								}
-								symbol.package_required = (_tmp4_ = g_strdup (_tmp3_), _g_free0 (symbol.package_required), _tmp4_);
-								break;
-							}
-						} else if (_tmp9_ == ((0 != _tmp9__label3) ? _tmp9__label3 : (_tmp9__label3 = g_quark_from_static_string ("num"))))
-						switch (0) {
-							default:
-							{
-								symbol.num = (guint) atoi (attr_values[i]);
-								break;
-							}
-						} else
-						switch (0) {
-							default:
-							{
-								char* _tmp5_;
-								char* _tmp6_;
-								GError* _tmp7_;
-								_inner_error_ = (_tmp7_ = g_error_new_literal (G_MARKUP_ERROR, G_MARKUP_ERROR_UNKNOWN_ATTRIBUTE, _tmp6_ = g_strconcat (_tmp5_ = g_strconcat ("unknown attribute \"", attr_names[i], NULL), "\"", NULL)), _g_free0 (_tmp6_), _g_free0 (_tmp5_), _tmp7_);
-								{
-									if (_inner_error_->domain == G_MARKUP_ERROR) {
-										g_propagate_error (error, _inner_error_);
-										most_used_symbol_destroy (&symbol);
-										return;
-									} else {
-										most_used_symbol_destroy (&symbol);
-										g_critical ("file %s: line %d: uncaught error: %s (%s, %d)", __FILE__, __LINE__, _inner_error_->message, g_quark_to_string (_inner_error_->domain), _inner_error_->code);
-										g_clear_error (&_inner_error_);
-										return;
+							} else if (_tmp4_ == ((0 != _tmp4__label1) ? _tmp4__label1 : (_tmp4__label1 = g_quark_from_static_string ("command")))) {
+								switch (0) {
+									default:
+									{
+										gchar* _tmp6_;
+										_tmp6_ = g_strdup (attr_values[i]);
+										_g_free0 (symbol.latex_command);
+										symbol.latex_command = _tmp6_;
+										break;
+									}
+								}
+							} else if (_tmp4_ == ((0 != _tmp4__label2) ? _tmp4__label2 : (_tmp4__label2 = g_quark_from_static_string ("package")))) {
+								switch (0) {
+									default:
+									{
+										const gchar* _tmp7_ = NULL;
+										gchar* _tmp8_;
+										if (g_strcmp0 (attr_values[i], "") != 0) {
+											_tmp7_ = attr_values[i];
+										} else {
+											_tmp7_ = NULL;
+										}
+										_tmp8_ = g_strdup (_tmp7_);
+										_g_free0 (symbol.package_required);
+										symbol.package_required = _tmp8_;
+										break;
+									}
+								}
+							} else if (_tmp4_ == ((0 != _tmp4__label3) ? _tmp4__label3 : (_tmp4__label3 = g_quark_from_static_string ("num")))) {
+								switch (0) {
+									default:
+									{
+										gint _tmp9_;
+										_tmp9_ = atoi (attr_values[i]);
+										symbol.num = (guint) _tmp9_;
+										break;
+									}
+								}
+							} else {
+								switch (0) {
+									default:
+									{
+										gchar* _tmp10_;
+										gchar* _tmp11_;
+										gchar* _tmp12_;
+										gchar* _tmp13_;
+										GError* _tmp14_ = NULL;
+										GError* _tmp15_;
+										_tmp10_ = g_strconcat ("unknown attribute \"", attr_names[i], NULL);
+										_tmp11_ = _tmp10_;
+										_tmp12_ = g_strconcat (_tmp11_, "\"", NULL);
+										_tmp13_ = _tmp12_;
+										_tmp14_ = g_error_new_literal (G_MARKUP_ERROR, G_MARKUP_ERROR_UNKNOWN_ATTRIBUTE, _tmp13_);
+										_tmp15_ = _tmp14_;
+										_g_free0 (_tmp13_);
+										_g_free0 (_tmp11_);
+										_inner_error_ = _tmp15_;
+										if (_inner_error_->domain == G_MARKUP_ERROR) {
+											g_propagate_error (error, _inner_error_);
+											most_used_symbol_destroy (&symbol);
+											return;
+										} else {
+											most_used_symbol_destroy (&symbol);
+											g_critical ("file %s: line %d: uncaught error: %s (%s, %d)", __FILE__, __LINE__, _inner_error_->message, g_quark_to_string (_inner_error_->domain), _inner_error_->code);
+											g_clear_error (&_inner_error_);
+											return;
+										}
 									}
 								}
 							}
 						}
 					}
 				}
+				gee_abstract_collection_add ((GeeAbstractCollection*) self->priv->most_used_symbols, &symbol);
+				most_used_symbol_destroy (&symbol);
+				break;
 			}
-			gee_abstract_collection_add ((GeeAbstractCollection*) self->priv->most_used_symbols, &symbol);
-			most_used_symbol_destroy (&symbol);
-			break;
 		}
-	} else
-	switch (0) {
-		default:
-		{
-			char* _tmp10_;
-			char* _tmp11_;
-			GError* _tmp12_;
-			_inner_error_ = (_tmp12_ = g_error_new_literal (G_MARKUP_ERROR, G_MARKUP_ERROR_UNKNOWN_ELEMENT, _tmp11_ = g_strconcat (_tmp10_ = g_strconcat ("unknown element \"", name, NULL), "\"", NULL)), _g_free0 (_tmp11_), _g_free0 (_tmp10_), _tmp12_);
+	} else {
+		switch (0) {
+			default:
 			{
+				gchar* _tmp16_;
+				gchar* _tmp17_;
+				gchar* _tmp18_;
+				gchar* _tmp19_;
+				GError* _tmp20_ = NULL;
+				GError* _tmp21_;
+				_tmp16_ = g_strconcat ("unknown element \"", name, NULL);
+				_tmp17_ = _tmp16_;
+				_tmp18_ = g_strconcat (_tmp17_, "\"", NULL);
+				_tmp19_ = _tmp18_;
+				_tmp20_ = g_error_new_literal (G_MARKUP_ERROR, G_MARKUP_ERROR_UNKNOWN_ELEMENT, _tmp19_);
+				_tmp21_ = _tmp20_;
+				_g_free0 (_tmp19_);
+				_g_free0 (_tmp17_);
+				_inner_error_ = _tmp21_;
 				if (_inner_error_->domain == G_MARKUP_ERROR) {
 					g_propagate_error (error, _inner_error_);
 					return;
@@ -1194,92 +1428,134 @@ static void app_settings_mus_parser_start (AppSettings* self, GMarkupParseContex
 
 static GFile* app_settings_get_file_most_used_symbols (AppSettings* self) {
 	GFile* result = NULL;
-	char* path;
+	const gchar* _tmp0_ = NULL;
+	gchar* _tmp1_ = NULL;
+	gchar* path;
+	GFile* _tmp2_ = NULL;
 	g_return_val_if_fail (self != NULL, NULL);
-	path = g_build_filename (g_get_user_data_dir (), "latexila", "most_used_symbols.xml", NULL, NULL);
-	result = g_file_new_for_path (path);
+	_tmp0_ = g_get_user_data_dir ();
+	_tmp1_ = g_build_filename (_tmp0_, "latexila", "most_used_symbols.xml", NULL, NULL);
+	path = _tmp1_;
+	_tmp2_ = g_file_new_for_path (path);
+	result = _tmp2_;
 	_g_free0 (path);
 	return result;
 }
 
 
 void app_settings_save_most_used_symbols (AppSettings* self) {
+	GFile* _tmp0_ = NULL;
 	GFile* file;
-	char* content;
-	char* _tmp7_;
+	gint _tmp1_;
+	gchar* _tmp2_;
+	gchar* content;
+	gchar* _tmp16_;
+	GFile* _tmp17_ = NULL;
+	GFile* parent;
+	gboolean _tmp18_ = FALSE;
+	gsize _tmp20_;
 	GError * _inner_error_ = NULL;
 	g_return_if_fail (self != NULL);
 	if (!self->priv->mus_modified) {
 		return;
 	}
-	file = app_settings_get_file_most_used_symbols (self);
-	if (gee_collection_get_size ((GeeCollection*) self->priv->most_used_symbols) == 0) {
+	_tmp0_ = app_settings_get_file_most_used_symbols (self);
+	file = _tmp0_;
+	_tmp1_ = gee_collection_get_size ((GeeCollection*) self->priv->most_used_symbols);
+	if (_tmp1_ == 0) {
 		utils_delete_file (file);
 		_g_object_unref0 (file);
 		return;
 	}
-	content = g_strdup ("<symbols>\n");
+	_tmp2_ = g_strdup ("<symbols>\n");
+	content = _tmp2_;
 	{
-		GeeIterator* _symbol_it;
-		_symbol_it = gee_abstract_collection_iterator ((GeeAbstractCollection*) self->priv->most_used_symbols);
+		GeeLinkedList* _tmp3_;
+		GeeLinkedList* _symbol_list;
+		gint _tmp4_;
+		gint _symbol_size;
+		gint _symbol_index;
+		_tmp3_ = _g_object_ref0 (self->priv->most_used_symbols);
+		_symbol_list = _tmp3_;
+		_tmp4_ = gee_collection_get_size ((GeeCollection*) _symbol_list);
+		_symbol_size = _tmp4_;
+		_symbol_index = -1;
 		while (TRUE) {
-			MostUsedSymbol* _tmp0_;
-			MostUsedSymbol _tmp1_ = {0};
-			MostUsedSymbol _tmp2_;
+			gpointer _tmp5_ = NULL;
+			MostUsedSymbol* _tmp6_;
+			MostUsedSymbol _tmp7_;
+			MostUsedSymbol _tmp8_ = {0};
+			MostUsedSymbol _tmp9_;
 			MostUsedSymbol symbol;
-			char* _tmp3_;
-			char* _tmp5_;
-			char* _tmp6_;
-			if (!gee_iterator_next (_symbol_it)) {
+			gchar* _tmp10_;
+			gchar* _tmp11_;
+			gchar* _tmp13_ = NULL;
+			gchar* _tmp14_;
+			gchar* _tmp15_;
+			_symbol_index = _symbol_index + 1;
+			if (!(_symbol_index < _symbol_size)) {
 				break;
 			}
-			symbol = (_tmp2_ = (most_used_symbol_copy (_tmp0_ = (MostUsedSymbol*) gee_iterator_get (_symbol_it), &_tmp1_), _tmp1_), _most_used_symbol_free0 (_tmp0_), _tmp2_);
-			_tmp3_ = g_strdup (symbol.package_required);
-			if (_tmp3_ == NULL) {
-				char* _tmp4_;
-				_tmp3_ = (_tmp4_ = g_strdup (""), _g_free0 (_tmp3_), _tmp4_);
+			_tmp5_ = gee_abstract_list_get ((GeeAbstractList*) _symbol_list, _symbol_index);
+			_tmp6_ = (MostUsedSymbol*) _tmp5_;
+			most_used_symbol_copy (_tmp6_, &_tmp8_);
+			_tmp7_ = _tmp8_;
+			_tmp9_ = _tmp7_;
+			_most_used_symbol_free0 (_tmp6_);
+			symbol = _tmp9_;
+			_tmp10_ = g_strdup (symbol.package_required);
+			_tmp11_ = _tmp10_;
+			if (_tmp11_ == NULL) {
+				gchar* _tmp12_;
+				_tmp12_ = g_strdup ("");
+				_g_free0 (_tmp11_);
+				_tmp11_ = _tmp12_;
 			}
-			content = (_tmp6_ = g_strconcat (content, _tmp5_ = g_strdup_printf ("  <symbol id=\"%s\" command=\"%s\" package=\"%s\" num=\"%u\" />\n", symbol.id, symbol.latex_command, _tmp3_, symbol.num), NULL), _g_free0 (content), _tmp6_);
-			_g_free0 (_tmp5_);
-			_g_free0 (_tmp3_);
+			_tmp13_ = g_strdup_printf ("  <symbol id=\"%s\" command=\"%s\" package=\"%s\" num=\"%u\" />\n", symbol.id, symbol.latex_command, _tmp11_, symbol.num);
+			_tmp14_ = _tmp13_;
+			_tmp15_ = g_strconcat (content, _tmp14_, NULL);
+			_g_free0 (content);
+			content = _tmp15_;
+			_g_free0 (_tmp14_);
+			_g_free0 (_tmp11_);
 			most_used_symbol_destroy (&symbol);
 		}
-		_g_object_unref0 (_symbol_it);
+		_g_object_unref0 (_symbol_list);
 	}
-	content = (_tmp7_ = g_strconcat (content, "</symbols>\n", NULL), _g_free0 (content), _tmp7_);
-	{
-		GFile* parent;
-		gboolean _tmp8_ = FALSE;
-		parent = g_file_get_parent (file);
-		if (parent != NULL) {
-			_tmp8_ = !g_file_query_exists (parent, NULL);
-		} else {
-			_tmp8_ = FALSE;
-		}
-		if (_tmp8_) {
-			g_file_make_directory_with_parents (parent, NULL, &_inner_error_);
-			if (_inner_error_ != NULL) {
-				_g_object_unref0 (parent);
-				goto __catch20_g_error;
-			}
-		}
-		g_file_replace_contents (file, content, strlen (content), NULL, FALSE, G_FILE_CREATE_NONE, NULL, NULL, &_inner_error_);
+	_tmp16_ = g_strconcat (content, "</symbols>\n", NULL);
+	_g_free0 (content);
+	content = _tmp16_;
+	_tmp17_ = g_file_get_parent (file);
+	parent = _tmp17_;
+	if (parent != NULL) {
+		gboolean _tmp19_;
+		_tmp19_ = g_file_query_exists (parent, NULL);
+		_tmp18_ = !_tmp19_;
+	} else {
+		_tmp18_ = FALSE;
+	}
+	if (_tmp18_) {
+		g_file_make_directory_with_parents (parent, NULL, &_inner_error_);
 		if (_inner_error_ != NULL) {
 			_g_object_unref0 (parent);
 			goto __catch20_g_error;
 		}
+	}
+	_tmp20_ = strlen (content);
+	g_file_replace_contents (file, content, _tmp20_, NULL, FALSE, G_FILE_CREATE_NONE, NULL, NULL, &_inner_error_);
+	if (_inner_error_ != NULL) {
 		_g_object_unref0 (parent);
+		goto __catch20_g_error;
 	}
+	_g_object_unref0 (parent);
 	goto __finally20;
 	__catch20_g_error:
 	{
 		GError * e;
 		e = _inner_error_;
 		_inner_error_ = NULL;
-		{
-			fprintf (stderr, "Warning: impossible to save most used symbols: %s\n", e->message);
-			_g_error_free0 (e);
-		}
+		fprintf (stderr, "Warning: impossible to save most used symbols: %s\n", e->message);
+		_g_error_free0 (e);
 	}
 	__finally20:
 	if (_inner_error_ != NULL) {
@@ -1310,23 +1586,35 @@ void app_settings_move_build_tool_up (AppSettings* self, gint num) {
 
 
 void app_settings_move_build_tool_down (AppSettings* self, gint num) {
+	gint _tmp0_;
 	g_return_if_fail (self != NULL);
-	g_return_if_fail (num < (gee_collection_get_size ((GeeCollection*) self->priv->build_tools) - 1));
+	_tmp0_ = gee_collection_get_size ((GeeCollection*) self->priv->build_tools);
+	g_return_if_fail (num < (_tmp0_ - 1));
 	app_settings_swap_build_tools (self, num, num + 1);
 }
 
 
 static void app_settings_swap_build_tools (AppSettings* self, gint num1, gint num2) {
-	BuildTool* _tmp0_;
-	BuildTool _tmp1_ = {0};
+	gpointer _tmp0_ = NULL;
+	BuildTool* _tmp1_;
 	BuildTool _tmp2_;
+	BuildTool _tmp3_ = {0};
+	BuildTool _tmp4_;
 	BuildTool tool;
-	BuildTool* _tmp3_;
+	gpointer _tmp5_ = NULL;
+	BuildTool* _tmp6_;
 	g_return_if_fail (self != NULL);
 	g_return_if_fail (self->priv->build_tools != NULL);
-	tool = (_tmp2_ = (build_tool_copy (_tmp0_ = (BuildTool*) gee_abstract_list_get ((GeeAbstractList*) self->priv->build_tools, num1), &_tmp1_), _tmp1_), _build_tool_free0 (_tmp0_), _tmp2_);
-	_tmp3_ = (BuildTool*) gee_abstract_list_remove_at ((GeeAbstractList*) self->priv->build_tools, num1);
-	_build_tool_free0 (_tmp3_);
+	_tmp0_ = gee_abstract_list_get ((GeeAbstractList*) self->priv->build_tools, num1);
+	_tmp1_ = (BuildTool*) _tmp0_;
+	build_tool_copy (_tmp1_, &_tmp3_);
+	_tmp2_ = _tmp3_;
+	_tmp4_ = _tmp2_;
+	_build_tool_free0 (_tmp1_);
+	tool = _tmp4_;
+	_tmp5_ = gee_abstract_list_remove_at ((GeeAbstractList*) self->priv->build_tools, num1);
+	_tmp6_ = (BuildTool*) _tmp5_;
+	_build_tool_free0 (_tmp6_);
 	gee_abstract_list_insert ((GeeAbstractList*) self->priv->build_tools, num2, &tool);
 	app_settings_update_all_build_tools_menu (self);
 	build_tool_destroy (&tool);
@@ -1335,25 +1623,31 @@ static void app_settings_swap_build_tools (AppSettings* self, gint num1, gint nu
 
 void app_settings_delete_build_tool (AppSettings* self, gint num) {
 	gboolean _tmp0_ = FALSE;
-	BuildTool* _tmp1_;
+	gpointer _tmp2_ = NULL;
+	BuildTool* _tmp3_;
 	g_return_if_fail (self != NULL);
 	g_return_if_fail (self->priv->build_tools != NULL);
 	if (num >= 0) {
-		_tmp0_ = num < gee_collection_get_size ((GeeCollection*) self->priv->build_tools);
+		gint _tmp1_;
+		_tmp1_ = gee_collection_get_size ((GeeCollection*) self->priv->build_tools);
+		_tmp0_ = num < _tmp1_;
 	} else {
 		_tmp0_ = FALSE;
 	}
 	g_return_if_fail (_tmp0_);
-	_tmp1_ = (BuildTool*) gee_abstract_list_remove_at ((GeeAbstractList*) self->priv->build_tools, num);
-	_build_tool_free0 (_tmp1_);
+	_tmp2_ = gee_abstract_list_remove_at ((GeeAbstractList*) self->priv->build_tools, num);
+	_tmp3_ = (BuildTool*) _tmp2_;
+	_build_tool_free0 (_tmp3_);
 	app_settings_update_all_build_tools_menu (self);
 }
 
 
 void app_settings_append_build_tool (AppSettings* self, BuildTool* tool) {
+	gboolean _tmp0_;
 	g_return_if_fail (self != NULL);
 	g_return_if_fail (self->priv->build_tools != NULL);
-	(*tool).compilation = app_settings_is_compilation (self, (*tool).icon);
+	_tmp0_ = app_settings_is_compilation (self, (*tool).icon);
+	(*tool).compilation = _tmp0_;
 	gee_abstract_collection_add ((GeeAbstractCollection*) self->priv->build_tools, tool);
 	app_settings_update_all_build_tools_menu (self);
 }
@@ -1361,24 +1655,40 @@ void app_settings_append_build_tool (AppSettings* self, BuildTool* tool) {
 
 void app_settings_update_build_tool (AppSettings* self, gint num, BuildTool* tool) {
 	gboolean _tmp0_ = FALSE;
-	BuildTool* _tmp1_;
-	BuildTool _tmp2_ = {0};
-	BuildTool _tmp3_;
+	gpointer _tmp2_ = NULL;
+	BuildTool* _tmp3_;
+	BuildTool _tmp4_;
+	BuildTool _tmp5_ = {0};
+	BuildTool _tmp6_;
 	BuildTool current_tool;
+	gboolean _tmp7_;
 	g_return_if_fail (self != NULL);
 	g_return_if_fail (self->priv->build_tools != NULL);
 	if (num >= 0) {
-		_tmp0_ = num < gee_collection_get_size ((GeeCollection*) self->priv->build_tools);
+		gint _tmp1_;
+		_tmp1_ = gee_collection_get_size ((GeeCollection*) self->priv->build_tools);
+		_tmp0_ = num < _tmp1_;
 	} else {
 		_tmp0_ = FALSE;
 	}
 	g_return_if_fail (_tmp0_);
-	current_tool = (_tmp3_ = (build_tool_copy (_tmp1_ = (BuildTool*) gee_abstract_list_get ((GeeAbstractList*) self->priv->build_tools, num), &_tmp2_), _tmp2_), _build_tool_free0 (_tmp1_), _tmp3_);
-	if (!app_settings_is_build_tools_equal (self, &current_tool, tool)) {
-		BuildTool* _tmp4_;
-		(*tool).compilation = app_settings_is_compilation (self, (*tool).icon);
-		_tmp4_ = (BuildTool*) gee_abstract_list_remove_at ((GeeAbstractList*) self->priv->build_tools, num);
-		_build_tool_free0 (_tmp4_);
+	_tmp2_ = gee_abstract_list_get ((GeeAbstractList*) self->priv->build_tools, num);
+	_tmp3_ = (BuildTool*) _tmp2_;
+	build_tool_copy (_tmp3_, &_tmp5_);
+	_tmp4_ = _tmp5_;
+	_tmp6_ = _tmp4_;
+	_build_tool_free0 (_tmp3_);
+	current_tool = _tmp6_;
+	_tmp7_ = app_settings_is_build_tools_equal (self, &current_tool, tool);
+	if (!_tmp7_) {
+		gboolean _tmp8_;
+		gpointer _tmp9_ = NULL;
+		BuildTool* _tmp10_;
+		_tmp8_ = app_settings_is_compilation (self, (*tool).icon);
+		(*tool).compilation = _tmp8_;
+		_tmp9_ = gee_abstract_list_remove_at ((GeeAbstractList*) self->priv->build_tools, num);
+		_tmp10_ = (BuildTool*) _tmp9_;
+		_build_tool_free0 (_tmp10_);
 		gee_abstract_list_insert ((GeeAbstractList*) self->priv->build_tools, num, tool);
 		app_settings_update_all_build_tools_menu (self);
 	}
@@ -1387,10 +1697,14 @@ void app_settings_update_build_tool (AppSettings* self, gint num, BuildTool* too
 
 
 void app_settings_reset_all_build_tools (AppSettings* self) {
+	GFile* _tmp0_ = NULL;
 	GFile* file;
+	gboolean _tmp1_;
 	g_return_if_fail (self != NULL);
-	file = app_settings_get_user_config_build_tools_file (self);
-	if (g_file_query_exists (file, NULL)) {
+	_tmp0_ = app_settings_get_user_config_build_tools_file (self);
+	file = _tmp0_;
+	_tmp1_ = g_file_query_exists (file, NULL);
+	if (_tmp1_) {
 		utils_delete_file (file);
 	}
 	app_settings_load_build_tools (self);
@@ -1406,25 +1720,29 @@ static gboolean app_settings_is_build_tools_equal (AppSettings* self, BuildTool*
 	gboolean _tmp2_ = FALSE;
 	gboolean _tmp3_ = FALSE;
 	g_return_val_if_fail (self != NULL, FALSE);
-	if (_vala_strcmp0 ((*tool1).label, (*tool2).label) != 0) {
+	if (g_strcmp0 ((*tool1).label, (*tool2).label) != 0) {
 		_tmp3_ = TRUE;
 	} else {
-		_tmp3_ = _vala_strcmp0 ((*tool1).description, (*tool2).description) != 0;
+		_tmp3_ = g_strcmp0 ((*tool1).description, (*tool2).description) != 0;
 	}
 	if (_tmp3_) {
 		_tmp2_ = TRUE;
 	} else {
-		_tmp2_ = _vala_strcmp0 ((*tool1).extensions, (*tool2).extensions) != 0;
+		_tmp2_ = g_strcmp0 ((*tool1).extensions, (*tool2).extensions) != 0;
 	}
 	if (_tmp2_) {
 		_tmp1_ = TRUE;
 	} else {
-		_tmp1_ = _vala_strcmp0 ((*tool1).icon, (*tool2).icon) != 0;
+		_tmp1_ = g_strcmp0 ((*tool1).icon, (*tool2).icon) != 0;
 	}
 	if (_tmp1_) {
 		_tmp0_ = TRUE;
 	} else {
-		_tmp0_ = g_list_length ((*tool1).jobs) != g_list_length ((*tool2).jobs);
+		guint _tmp4_;
+		guint _tmp5_;
+		_tmp4_ = g_list_length ((*tool1).jobs);
+		_tmp5_ = g_list_length ((*tool2).jobs);
+		_tmp0_ = _tmp4_ != _tmp5_;
 	}
 	if (_tmp0_) {
 		result = FALSE;
@@ -1434,35 +1752,47 @@ static gboolean app_settings_is_build_tools_equal (AppSettings* self, BuildTool*
 		guint i;
 		i = (guint) 0;
 		{
-			gboolean _tmp4_;
-			_tmp4_ = TRUE;
+			gboolean _tmp6_;
+			_tmp6_ = TRUE;
 			while (TRUE) {
-				BuildJob _tmp5_ = {0};
+				guint _tmp7_;
+				gconstpointer _tmp8_ = NULL;
+				BuildJob _tmp9_;
+				BuildJob _tmp10_ = {0};
 				BuildJob job1;
-				BuildJob _tmp6_ = {0};
+				gconstpointer _tmp11_ = NULL;
+				BuildJob _tmp12_;
+				BuildJob _tmp13_ = {0};
 				BuildJob job2;
-				gboolean _tmp7_ = FALSE;
-				gboolean _tmp8_ = FALSE;
-				if (!_tmp4_) {
+				gboolean _tmp14_ = FALSE;
+				gboolean _tmp15_ = FALSE;
+				if (!_tmp6_) {
 					i++;
 				}
-				_tmp4_ = FALSE;
-				if (!(i < g_list_length ((*tool1).jobs))) {
+				_tmp6_ = FALSE;
+				_tmp7_ = g_list_length ((*tool1).jobs);
+				if (!(i < _tmp7_)) {
 					break;
 				}
-				job1 = (build_job_copy ((BuildJob*) g_list_nth_data ((*tool1).jobs, i), &_tmp5_), _tmp5_);
-				job2 = (build_job_copy ((BuildJob*) g_list_nth_data ((*tool2).jobs, i), &_tmp6_), _tmp6_);
-				if (_vala_strcmp0 (job1.command, job2.command) != 0) {
-					_tmp8_ = TRUE;
+				_tmp8_ = g_list_nth_data ((*tool1).jobs, i);
+				build_job_copy ((BuildJob*) _tmp8_, &_tmp10_);
+				_tmp9_ = _tmp10_;
+				job1 = _tmp9_;
+				_tmp11_ = g_list_nth_data ((*tool2).jobs, i);
+				build_job_copy ((BuildJob*) _tmp11_, &_tmp13_);
+				_tmp12_ = _tmp13_;
+				job2 = _tmp12_;
+				if (g_strcmp0 (job1.command, job2.command) != 0) {
+					_tmp15_ = TRUE;
 				} else {
-					_tmp8_ = job1.must_succeed != job2.must_succeed;
+					_tmp15_ = job1.must_succeed != job2.must_succeed;
 				}
-				if (_tmp8_) {
-					_tmp7_ = TRUE;
+				if (_tmp15_) {
+					_tmp14_ = TRUE;
 				} else {
-					_tmp7_ = _vala_strcmp0 (job1.post_processor, job2.post_processor) != 0;
+					_tmp14_ = g_strcmp0 (job1.post_processor, job2.post_processor) != 0;
 				}
-				if (_tmp7_) {
+				if (_tmp14_) {
 					result = FALSE;
 					build_job_destroy (&job2);
 					build_job_destroy (&job1);
@@ -1479,17 +1809,26 @@ static gboolean app_settings_is_build_tools_equal (AppSettings* self, BuildTool*
 
 
 static void app_settings_update_all_build_tools_menu (AppSettings* self) {
+	Application* _tmp0_ = NULL;
+	Application* _tmp1_;
+	GList* _tmp2_ = NULL;
+	GList* _tmp3_;
 	g_return_if_fail (self != NULL);
 	self->priv->build_tools_modified = TRUE;
+	_tmp0_ = application_get_default ();
+	_tmp1_ = _tmp0_;
+	_tmp2_ = application_get_windows (_tmp1_);
+	_tmp3_ = _tmp2_;
+	_g_object_unref0 (_tmp1_);
 	{
-		Application* _tmp0_;
-		GList* _tmp1_;
 		GList* window_collection;
 		GList* window_it;
-		window_collection = (_tmp1_ = application_get_windows (_tmp0_ = application_get_default ()), _g_object_unref0 (_tmp0_), _tmp1_);
+		window_collection = _tmp3_;
 		for (window_it = window_collection; window_it != NULL; window_it = window_it->next) {
+			MainWindow* _tmp4_;
 			MainWindow* window;
-			window = _g_object_ref0 ((MainWindow*) window_it->data);
+			_tmp4_ = _g_object_ref0 ((MainWindow*) window_it->data);
+			window = _tmp4_;
 			{
 				main_window_update_build_tools_menu (window);
 				_g_object_unref0 (window);
@@ -1499,37 +1838,41 @@ static void app_settings_update_all_build_tools_menu (AppSettings* self) {
 }
 
 
-static gboolean string_contains (const char* self, const char* needle) {
+static gboolean string_contains (const gchar* self, const gchar* needle) {
 	gboolean result = FALSE;
+	gchar* _tmp0_ = NULL;
 	g_return_val_if_fail (self != NULL, FALSE);
 	g_return_val_if_fail (needle != NULL, FALSE);
-	result = strstr (self, needle) != NULL;
+	_tmp0_ = strstr ((gchar*) self, (gchar*) needle);
+	result = _tmp0_ != NULL;
 	return result;
 }
 
 
-static gboolean app_settings_is_compilation (AppSettings* self, const char* icon) {
+static gboolean app_settings_is_compilation (AppSettings* self, const gchar* icon) {
 	gboolean result = FALSE;
 	gboolean _tmp0_ = FALSE;
 	gboolean _tmp1_ = FALSE;
+	gboolean _tmp2_;
 	g_return_val_if_fail (self != NULL, FALSE);
 	g_return_val_if_fail (icon != NULL, FALSE);
-	if (string_contains (icon, "compile")) {
+	_tmp2_ = string_contains (icon, "compile");
+	if (_tmp2_) {
 		_tmp1_ = TRUE;
 	} else {
-		_tmp1_ = _vala_strcmp0 (icon, GTK_STOCK_EXECUTE) == 0;
+		_tmp1_ = g_strcmp0 (icon, GTK_STOCK_EXECUTE) == 0;
 	}
 	if (_tmp1_) {
 		_tmp0_ = TRUE;
 	} else {
-		_tmp0_ = _vala_strcmp0 (icon, GTK_STOCK_CONVERT) == 0;
+		_tmp0_ = g_strcmp0 (icon, GTK_STOCK_CONVERT) == 0;
 	}
 	result = _tmp0_;
 	return result;
 }
 
 
-static void _vala_array_add9 (GFile*** array, int* length, int* size, GFile* value) {
+static void _vala_array_add8 (GFile*** array, int* length, int* size, GFile* value) {
 	if ((*length) == (*size)) {
 		*size = (*size) ? (2 * (*size)) : 4;
 		*array = g_renew (GFile*, *array, (*size) + 1);
@@ -1539,7 +1882,7 @@ static void _vala_array_add9 (GFile*** array, int* length, int* size, GFile* val
 }
 
 
-static void _vala_array_add10 (GFile*** array, int* length, int* size, GFile* value) {
+static void _vala_array_add9 (GFile*** array, int* length, int* size, GFile* value) {
 	if ((*length) == (*size)) {
 		*size = (*size) ? (2 * (*size)) : 4;
 		*array = g_renew (GFile*, *array, (*size) + 1);
@@ -1549,7 +1892,7 @@ static void _vala_array_add10 (GFile*** array, int* length, int* size, GFile* va
 }
 
 
-static void _vala_array_add11 (GFile*** array, int* length, int* size, GFile* value) {
+static void _vala_array_add10 (GFile*** array, int* length, int* size, GFile* value) {
 	if ((*length) == (*size)) {
 		*size = (*size) ? (2 * (*size)) : 4;
 		*array = g_renew (GFile*, *array, (*size) + 1);
@@ -1559,42 +1902,66 @@ static void _vala_array_add11 (GFile*** array, int* length, int* size, GFile* va
 }
 
 
-static void _app_settings_parser_start_gmarkup_parser_start_element_func (GMarkupParseContext* context, const char* element_name, char** attribute_names, char** attribute_values, gpointer self, GError** error) {
+static void _app_settings_parser_start_gmarkup_parser_start_element_func (GMarkupParseContext* context, const gchar* element_name, gchar** attribute_names, gchar** attribute_values, gpointer self, GError** error) {
 	app_settings_parser_start (self, context, element_name, attribute_names, _vala_array_length (attribute_names), attribute_values, _vala_array_length (attribute_values), error);
 }
 
 
-static void _app_settings_parser_end_gmarkup_parser_end_element_func (GMarkupParseContext* context, const char* element_name, gpointer self, GError** error) {
+static void _app_settings_parser_end_gmarkup_parser_end_element_func (GMarkupParseContext* context, const gchar* element_name, gpointer self, GError** error) {
 	app_settings_parser_end (self, context, element_name, error);
 }
 
 
-static void _app_settings_parser_text_gmarkup_parser_text_func (GMarkupParseContext* context, const char* text, gsize text_len, gpointer self, GError** error) {
+static void _app_settings_parser_text_gmarkup_parser_text_func (GMarkupParseContext* context, const gchar* text, gsize text_len, gpointer self, GError** error) {
 	app_settings_parser_text (self, context, text, text_len, error);
 }
 
 
 static void app_settings_load_build_tools (AppSettings* self) {
-	GeeLinkedList* _tmp0_;
-	gint files_length1;
-	gint _files_size_;
-	GFile** _tmp2_;
+	GeeLinkedList* _tmp0_ = NULL;
 	GFile** _tmp1_ = NULL;
 	GFile** files;
-	char* _tmp3_;
-	char* _tmp4_;
-	GFile* _tmp5_;
+	gint files_length1;
+	gint _files_size_;
+	GFile* _tmp2_ = NULL;
+	const gchar* _tmp3_ = NULL;
+	gchar* _tmp4_ = NULL;
+	gchar* _tmp5_;
+	GFile* _tmp6_ = NULL;
+	gchar* _tmp7_ = NULL;
+	gchar* _tmp8_;
+	GFile* _tmp9_ = NULL;
+	GFile* _tmp10_;
 	GFile* default_file;
+	gboolean _tmp11_;
 	GError * _inner_error_ = NULL;
 	g_return_if_fail (self != NULL);
-	self->priv->build_tools = (_tmp0_ = gee_linked_list_new (TYPE_BUILD_TOOL, (GBoxedCopyFunc) build_tool_dup, build_tool_free, NULL), _g_object_unref0 (self->priv->build_tools), _tmp0_);
-	files = (_tmp2_ = (_tmp1_ = g_new0 (GFile*, 0 + 1), _tmp1_), files_length1 = 0, _files_size_ = files_length1, _tmp2_);
-	_vala_array_add9 (&files, &files_length1, &_files_size_, app_settings_get_user_config_build_tools_file (self));
-	_vala_array_add10 (&files, &files_length1, &_files_size_, g_file_new_for_path (_tmp3_ = g_build_filename (DATA_DIR, "build_tools", _ ("build_tools-en.xml"), NULL, NULL)));
-	_g_free0 (_tmp3_);
-	default_file = (_tmp5_ = g_file_new_for_path (_tmp4_ = g_build_filename (DATA_DIR, "build_tools", "build_tools-en.xml", NULL, NULL)), _g_free0 (_tmp4_), _tmp5_);
-	if (!g_file_equal (default_file, files[1])) {
-		_vala_array_add11 (&files, &files_length1, &_files_size_, _g_object_ref0 (default_file));
+	_tmp0_ = gee_linked_list_new (TYPE_BUILD_TOOL, (GBoxedCopyFunc) build_tool_dup, build_tool_free, NULL);
+	_g_object_unref0 (self->priv->build_tools);
+	self->priv->build_tools = _tmp0_;
+	_tmp1_ = g_new0 (GFile*, 0 + 1);
+	files = _tmp1_;
+	files_length1 = 0;
+	_files_size_ = 0;
+	_tmp2_ = app_settings_get_user_config_build_tools_file (self);
+	_vala_array_add8 (&files, &files_length1, &_files_size_, _tmp2_);
+	_tmp3_ = _ ("build_tools-en.xml");
+	_tmp4_ = g_build_filename (DATA_DIR, "build_tools", _tmp3_, NULL, NULL);
+	_tmp5_ = _tmp4_;
+	_tmp6_ = g_file_new_for_path (_tmp5_);
+	_vala_array_add9 (&files, &files_length1, &_files_size_, _tmp6_);
+	_g_free0 (_tmp5_);
+	_tmp7_ = g_build_filename (DATA_DIR, "build_tools", "build_tools-en.xml", NULL, NULL);
+	_tmp8_ = _tmp7_;
+	_tmp9_ = g_file_new_for_path (_tmp8_);
+	_tmp10_ = _tmp9_;
+	_g_free0 (_tmp8_);
+	default_file = _tmp10_;
+	_tmp11_ = g_file_equal (default_file, files[1]);
+	if (!_tmp11_) {
+		GFile* _tmp12_;
+		_tmp12_ = _g_object_ref0 (default_file);
+		_vala_array_add10 (&files, &files_length1, &_files_size_, _tmp12_);
 	}
 	{
 		GFile** file_collection;
@@ -1603,50 +1970,58 @@ static void app_settings_load_build_tools (AppSettings* self) {
 		file_collection = files;
 		file_collection_length1 = files_length1;
 		for (file_it = 0; file_it < files_length1; file_it = file_it + 1) {
+			GFile* _tmp13_;
 			GFile* file;
-			file = _g_object_ref0 (file_collection[file_it]);
+			_tmp13_ = _g_object_ref0 (file_collection[file_it]);
+			file = _tmp13_;
 			{
-				{
-					char* contents;
-					char* _tmp6_ = NULL;
-					char* _tmp7_;
-					GMarkupParser _tmp8_ = {0};
-					GMarkupParser parser;
-					GMarkupParseContext* context;
-					if (!g_file_query_exists (file, NULL)) {
-						_g_object_unref0 (file);
-						continue;
-					}
-					contents = NULL;
-					g_file_load_contents (file, NULL, &_tmp6_, NULL, NULL, &_inner_error_);
-					contents = (_tmp7_ = _tmp6_, _g_free0 (contents), _tmp7_);
-					if (_inner_error_ != NULL) {
-						_g_free0 (contents);
-						goto __catch21_g_error;
-					}
-					parser = (_tmp8_.start_element = _app_settings_parser_start_gmarkup_parser_start_element_func, _tmp8_.end_element = _app_settings_parser_end_gmarkup_parser_end_element_func, _tmp8_.text = _app_settings_parser_text_gmarkup_parser_text_func, _tmp8_.passthrough = NULL, _tmp8_.error = NULL, _tmp8_);
-					context = g_markup_parse_context_new (&parser, 0, self, NULL);
-					g_markup_parse_context_parse (context, contents, (gssize) (-1), &_inner_error_);
-					if (_inner_error_ != NULL) {
-						_g_markup_parse_context_free0 (context);
-						_g_free0 (contents);
-						goto __catch21_g_error;
-					}
+				gboolean _tmp14_;
+				gchar* contents = NULL;
+				gchar* _tmp15_ = NULL;
+				GMarkupParser _tmp16_ = {0};
+				GMarkupParser parser;
+				GMarkupParseContext* _tmp17_ = NULL;
+				GMarkupParseContext* context;
+				_tmp14_ = g_file_query_exists (file, NULL);
+				if (!_tmp14_) {
+					_g_object_unref0 (file);
+					continue;
+				}
+				g_file_load_contents (file, NULL, &_tmp15_, NULL, NULL, &_inner_error_);
+				_g_free0 (contents);
+				contents = _tmp15_;
+				if (_inner_error_ != NULL) {
+					_g_free0 (contents);
+					goto __catch21_g_error;
+				}
+				_tmp16_.start_element = _app_settings_parser_start_gmarkup_parser_start_element_func;
+				_tmp16_.end_element = _app_settings_parser_end_gmarkup_parser_end_element_func;
+				_tmp16_.text = _app_settings_parser_text_gmarkup_parser_text_func;
+				_tmp16_.passthrough = NULL;
+				_tmp16_.error = NULL;
+				parser = _tmp16_;
+				_tmp17_ = g_markup_parse_context_new (&parser, 0, self, NULL);
+				context = _tmp17_;
+				g_markup_parse_context_parse (context, contents, (gssize) (-1), &_inner_error_);
+				if (_inner_error_ != NULL) {
 					_g_markup_parse_context_free0 (context);
 					_g_free0 (contents);
-					_g_object_unref0 (file);
-					break;
+					goto __catch21_g_error;
 				}
+				_g_markup_parse_context_free0 (context);
+				_g_free0 (contents);
+				_g_object_unref0 (file);
+				break;
+				_g_markup_parse_context_free0 (context);
+				_g_free0 (contents);
 				goto __finally21;
 				__catch21_g_error:
 				{
 					GError * e;
 					e = _inner_error_;
 					_inner_error_ = NULL;
-					{
-						fprintf (stderr, "Warning: impossible to load build tools: %s\n", e->message);
-						_g_error_free0 (e);
-					}
+					fprintf (stderr, "Warning: impossible to load build tools: %s\n", e->message);
+					_g_error_free0 (e);
 				}
 				__finally21:
 				if (_inner_error_ != NULL) {
@@ -1666,10 +2041,10 @@ static void app_settings_load_build_tools (AppSettings* self) {
 }
 
 
-static gboolean string_to_bool (const char* self) {
+static gboolean string_to_bool (const gchar* self) {
 	gboolean result = FALSE;
 	g_return_val_if_fail (self != NULL, FALSE);
-	if (_vala_strcmp0 (self, "true") == 0) {
+	if (g_strcmp0 (self, "true") == 0) {
 		result = TRUE;
 		return result;
 	} else {
@@ -1679,220 +2054,284 @@ static gboolean string_to_bool (const char* self) {
 }
 
 
-static void app_settings_parser_start (AppSettings* self, GMarkupParseContext* context, const char* name, char** attr_names, int attr_names_length1, char** attr_values, int attr_values_length1, GError** error) {
-	const char* _tmp26_;
-	GQuark _tmp27_;
-	static GQuark _tmp27__label0 = 0;
-	static GQuark _tmp27__label1 = 0;
-	static GQuark _tmp27__label2 = 0;
+static void app_settings_parser_start (AppSettings* self, GMarkupParseContext* context, const gchar* name, gchar** attr_names, int attr_names_length1, gchar** attr_values, int attr_values_length1, GError** error) {
+	const gchar* _tmp0_;
+	GQuark _tmp1_;
+	static GQuark _tmp1__label0 = 0;
+	static GQuark _tmp1__label1 = 0;
+	static GQuark _tmp1__label2 = 0;
 	GError * _inner_error_ = NULL;
 	g_return_if_fail (self != NULL);
 	g_return_if_fail (context != NULL);
 	g_return_if_fail (name != NULL);
-	_tmp26_ = name;
-	_tmp27_ = (NULL == _tmp26_) ? 0 : g_quark_from_string (_tmp26_);
-	if (_tmp27_ == ((0 != _tmp27__label0) ? _tmp27__label0 : (_tmp27__label0 = g_quark_from_static_string ("tools"))))
-	switch (0) {
-		default:
-		{
-			return;
+	_tmp0_ = name;
+	_tmp1_ = (NULL == _tmp0_) ? 0 : g_quark_from_string (_tmp0_);
+	if (_tmp1_ == ((0 != _tmp1__label0) ? _tmp1__label0 : (_tmp1__label0 = g_quark_from_static_string ("tools")))) {
+		switch (0) {
+			default:
+			{
+				return;
+			}
 		}
-	} else if (_tmp27_ == ((0 != _tmp27__label1) ? _tmp27__label1 : (_tmp27__label1 = g_quark_from_static_string ("tool"))))
-	switch (0) {
-		default:
-		{
-			BuildTool _tmp0_ = {0};
-			BuildTool _tmp1_;
-			self->priv->current_build_tool = (_tmp1_ = (memset (&_tmp0_, 0, sizeof (BuildTool)), _tmp0_), build_tool_destroy (&self->priv->current_build_tool), _tmp1_);
-			self->priv->current_build_tool.compilation = FALSE;
+	} else if (_tmp1_ == ((0 != _tmp1__label1) ? _tmp1__label1 : (_tmp1__label1 = g_quark_from_static_string ("tool")))) {
+		switch (0) {
+			default:
 			{
-				gint i;
-				i = 0;
+				BuildTool _tmp2_ = {0};
+				BuildTool _tmp3_ = {0};
+				memset (&_tmp2_, 0, sizeof (BuildTool));
+				_tmp3_ = _tmp2_;
+				build_tool_destroy (&self->priv->current_build_tool);
+				self->priv->current_build_tool = _tmp3_;
+				self->priv->current_build_tool.compilation = FALSE;
 				{
-					gboolean _tmp2_;
-					_tmp2_ = TRUE;
-					while (TRUE) {
-						const char* _tmp12_;
-						GQuark _tmp13_;
-						static GQuark _tmp13__label0 = 0;
-						static GQuark _tmp13__label1 = 0;
-						static GQuark _tmp13__label2 = 0;
-						static GQuark _tmp13__label3 = 0;
-						if (!_tmp2_) {
-							i++;
-						}
-						_tmp2_ = FALSE;
-						if (!(i < attr_names_length1)) {
-							break;
-						}
-						_tmp12_ = attr_names[i];
-						_tmp13_ = (NULL == _tmp12_) ? 0 : g_quark_from_string (_tmp12_);
-						if (_tmp13_ == ((0 != _tmp13__label0) ? _tmp13__label0 : (_tmp13__label0 = g_quark_from_static_string ("description"))))
-						switch (0) {
-							default:
-							{
-								char* _tmp3_;
-								self->priv->current_build_tool.description = (_tmp3_ = g_strdup (attr_values[i]), _g_free0 (self->priv->current_build_tool.description), _tmp3_);
-								break;
-							}
-						} else if (_tmp13_ == ((0 != _tmp13__label1) ? _tmp13__label1 : (_tmp13__label1 = g_quark_from_static_string ("extensions"))))
-						switch (0) {
-							default:
-							{
-								char* _tmp4_;
-								self->priv->current_build_tool.extensions = (_tmp4_ = g_strdup (attr_values[i]), _g_free0 (self->priv->current_build_tool.extensions), _tmp4_);
-								break;
+					gint i;
+					i = 0;
+					{
+						gboolean _tmp4_;
+						_tmp4_ = TRUE;
+						while (TRUE) {
+							const gchar* _tmp5_;
+							GQuark _tmp6_;
+							static GQuark _tmp6__label0 = 0;
+							static GQuark _tmp6__label1 = 0;
+							static GQuark _tmp6__label2 = 0;
+							static GQuark _tmp6__label3 = 0;
+							if (!_tmp4_) {
+								i++;
 							}
-						} else if (_tmp13_ == ((0 != _tmp13__label2) ? _tmp13__label2 : (_tmp13__label2 = g_quark_from_static_string ("label"))))
-						switch (0) {
-							default:
-							{
-								char* _tmp5_;
-								self->priv->current_build_tool.label = (_tmp5_ = g_strdup (attr_values[i]), _g_free0 (self->priv->current_build_tool.label), _tmp5_);
+							_tmp4_ = FALSE;
+							if (!(i < attr_names_length1)) {
 								break;
 							}
-						} else if (_tmp13_ == ((0 != _tmp13__label3) ? _tmp13__label3 : (_tmp13__label3 = g_quark_from_static_string ("icon"))))
-						switch (0) {
-							default:
-							{
-								char* icon;
-								char* _tmp6_;
-								const char* _tmp7_;
-								GQuark _tmp8_;
-								static GQuark _tmp8__label0 = 0;
-								static GQuark _tmp8__label1 = 0;
-								static GQuark _tmp8__label2 = 0;
-								icon = g_strdup (attr_values[i]);
-								self->priv->current_build_tool.icon = (_tmp6_ = g_strdup (icon), _g_free0 (self->priv->current_build_tool.icon), _tmp6_);
-								_tmp7_ = icon;
-								_tmp8_ = (NULL == _tmp7_) ? 0 : g_quark_from_string (_tmp7_);
-								if (_tmp8_ == ((0 != _tmp8__label0) ? _tmp8__label0 : (_tmp8__label0 = g_quark_from_static_string ("view_dvi"))))
+							_tmp5_ = attr_names[i];
+							_tmp6_ = (NULL == _tmp5_) ? 0 : g_quark_from_string (_tmp5_);
+							if (_tmp6_ == ((0 != _tmp6__label0) ? _tmp6__label0 : (_tmp6__label0 = g_quark_from_static_string ("description")))) {
 								switch (0) {
 									default:
 									{
-										self->priv->current_tool_is_view_dvi = TRUE;
+										gchar* _tmp7_;
+										_tmp7_ = g_strdup (attr_values[i]);
+										_g_free0 (self->priv->current_build_tool.description);
+										self->priv->current_build_tool.description = _tmp7_;
 										break;
 									}
-								} else if (_tmp8_ == ((0 != _tmp8__label1) ? _tmp8__label1 : (_tmp8__label1 = g_quark_from_static_string ("view_pdf"))))
+								}
+							} else if (_tmp6_ == ((0 != _tmp6__label1) ? _tmp6__label1 : (_tmp6__label1 = g_quark_from_static_string ("extensions")))) {
 								switch (0) {
 									default:
 									{
-										self->priv->current_tool_is_view_pdf = TRUE;
+										gchar* _tmp8_;
+										_tmp8_ = g_strdup (attr_values[i]);
+										_g_free0 (self->priv->current_build_tool.extensions);
+										self->priv->current_build_tool.extensions = _tmp8_;
 										break;
 									}
-								} else if (_tmp8_ == ((0 != _tmp8__label2) ? _tmp8__label2 : (_tmp8__label2 = g_quark_from_static_string ("view_ps"))))
+								}
+							} else if (_tmp6_ == ((0 != _tmp6__label2) ? _tmp6__label2 : (_tmp6__label2 = g_quark_from_static_string ("label")))) {
 								switch (0) {
 									default:
 									{
-										self->priv->current_tool_is_view_ps = TRUE;
+										gchar* _tmp9_;
+										_tmp9_ = g_strdup (attr_values[i]);
+										_g_free0 (self->priv->current_build_tool.label);
+										self->priv->current_build_tool.label = _tmp9_;
 										break;
 									}
 								}
-								self->priv->current_build_tool.compilation = app_settings_is_compilation (self, icon);
-								_g_free0 (icon);
-								break;
-							}
-						} else
-						switch (0) {
-							default:
-							{
-								char* _tmp9_;
-								char* _tmp10_;
-								GError* _tmp11_;
-								_inner_error_ = (_tmp11_ = g_error_new_literal (G_MARKUP_ERROR, G_MARKUP_ERROR_UNKNOWN_ATTRIBUTE, _tmp10_ = g_strconcat (_tmp9_ = g_strconcat ("unknown attribute \"", attr_names[i], NULL), "\"", NULL)), _g_free0 (_tmp10_), _g_free0 (_tmp9_), _tmp11_);
-								{
-									if (_inner_error_->domain == G_MARKUP_ERROR) {
-										g_propagate_error (error, _inner_error_);
-										return;
-									} else {
-										g_critical ("file %s: line %d: uncaught error: %s (%s, %d)", __FILE__, __LINE__, _inner_error_->message, g_quark_to_string (_inner_error_->domain), _inner_error_->code);
-										g_clear_error (&_inner_error_);
-										return;
+							} else if (_tmp6_ == ((0 != _tmp6__label3) ? _tmp6__label3 : (_tmp6__label3 = g_quark_from_static_string ("icon")))) {
+								switch (0) {
+									default:
+									{
+										gchar* _tmp10_;
+										gchar* icon;
+										gchar* _tmp11_;
+										const gchar* _tmp12_;
+										GQuark _tmp13_;
+										static GQuark _tmp13__label0 = 0;
+										static GQuark _tmp13__label1 = 0;
+										static GQuark _tmp13__label2 = 0;
+										gboolean _tmp14_;
+										_tmp10_ = g_strdup (attr_values[i]);
+										icon = _tmp10_;
+										_tmp11_ = g_strdup (icon);
+										_g_free0 (self->priv->current_build_tool.icon);
+										self->priv->current_build_tool.icon = _tmp11_;
+										_tmp12_ = icon;
+										_tmp13_ = (NULL == _tmp12_) ? 0 : g_quark_from_string (_tmp12_);
+										if (_tmp13_ == ((0 != _tmp13__label0) ? _tmp13__label0 : (_tmp13__label0 = g_quark_from_static_string ("view_dvi")))) {
+											switch (0) {
+												default:
+												{
+													self->priv->current_tool_is_view_dvi = TRUE;
+													break;
+												}
+											}
+										} else if (_tmp13_ == ((0 != _tmp13__label1) ? _tmp13__label1 : (_tmp13__label1 = g_quark_from_static_string ("view_pdf")))) {
+											switch (0) {
+												default:
+												{
+													self->priv->current_tool_is_view_pdf = TRUE;
+													break;
+												}
+											}
+										} else if (_tmp13_ == ((0 != _tmp13__label2) ? _tmp13__label2 : (_tmp13__label2 = g_quark_from_static_string ("view_ps")))) {
+											switch (0) {
+												default:
+												{
+													self->priv->current_tool_is_view_ps = TRUE;
+													break;
+												}
+											}
+										}
+										_tmp14_ = app_settings_is_compilation (self, icon);
+										self->priv->current_build_tool.compilation = _tmp14_;
+										_g_free0 (icon);
+										break;
+									}
+								}
+							} else {
+								switch (0) {
+									default:
+									{
+										gchar* _tmp15_;
+										gchar* _tmp16_;
+										gchar* _tmp17_;
+										gchar* _tmp18_;
+										GError* _tmp19_ = NULL;
+										GError* _tmp20_;
+										_tmp15_ = g_strconcat ("unknown attribute \"", attr_names[i], NULL);
+										_tmp16_ = _tmp15_;
+										_tmp17_ = g_strconcat (_tmp16_, "\"", NULL);
+										_tmp18_ = _tmp17_;
+										_tmp19_ = g_error_new_literal (G_MARKUP_ERROR, G_MARKUP_ERROR_UNKNOWN_ATTRIBUTE, _tmp18_);
+										_tmp20_ = _tmp19_;
+										_g_free0 (_tmp18_);
+										_g_free0 (_tmp16_);
+										_inner_error_ = _tmp20_;
+										if (_inner_error_->domain == G_MARKUP_ERROR) {
+											g_propagate_error (error, _inner_error_);
+											return;
+										} else {
+											g_critical ("file %s: line %d: uncaught error: %s (%s, %d)", __FILE__, __LINE__, _inner_error_->message, g_quark_to_string (_inner_error_->domain), _inner_error_->code);
+											g_clear_error (&_inner_error_);
+											return;
+										}
 									}
 								}
 							}
 						}
 					}
 				}
+				break;
 			}
-			break;
 		}
-	} else if (_tmp27_ == ((0 != _tmp27__label2) ? _tmp27__label2 : (_tmp27__label2 = g_quark_from_static_string ("job"))))
-	switch (0) {
-		default:
-		{
-			BuildJob _tmp14_ = {0};
-			BuildJob _tmp15_;
-			self->priv->current_build_job = (_tmp15_ = (memset (&_tmp14_, 0, sizeof (BuildJob)), _tmp14_), build_job_destroy (&self->priv->current_build_job), _tmp15_);
+	} else if (_tmp1_ == ((0 != _tmp1__label2) ? _tmp1__label2 : (_tmp1__label2 = g_quark_from_static_string ("job")))) {
+		switch (0) {
+			default:
 			{
-				gint i;
-				i = 0;
+				BuildJob _tmp21_ = {0};
+				BuildJob _tmp22_ = {0};
+				memset (&_tmp21_, 0, sizeof (BuildJob));
+				_tmp22_ = _tmp21_;
+				build_job_destroy (&self->priv->current_build_job);
+				self->priv->current_build_job = _tmp22_;
 				{
-					gboolean _tmp16_;
-					_tmp16_ = TRUE;
-					while (TRUE) {
-						const char* _tmp21_;
-						GQuark _tmp22_;
-						static GQuark _tmp22__label0 = 0;
-						static GQuark _tmp22__label1 = 0;
-						if (!_tmp16_) {
-							i++;
-						}
-						_tmp16_ = FALSE;
-						if (!(i < attr_names_length1)) {
-							break;
-						}
-						_tmp21_ = attr_names[i];
-						_tmp22_ = (NULL == _tmp21_) ? 0 : g_quark_from_string (_tmp21_);
-						if (_tmp22_ == ((0 != _tmp22__label0) ? _tmp22__label0 : (_tmp22__label0 = g_quark_from_static_string ("mustSucceed"))))
-						switch (0) {
-							default:
-							{
-								self->priv->current_build_job.must_succeed = string_to_bool (attr_values[i]);
-								break;
+					gint i;
+					i = 0;
+					{
+						gboolean _tmp23_;
+						_tmp23_ = TRUE;
+						while (TRUE) {
+							const gchar* _tmp24_;
+							GQuark _tmp25_;
+							static GQuark _tmp25__label0 = 0;
+							static GQuark _tmp25__label1 = 0;
+							if (!_tmp23_) {
+								i++;
 							}
-						} else if (_tmp22_ == ((0 != _tmp22__label1) ? _tmp22__label1 : (_tmp22__label1 = g_quark_from_static_string ("postProcessor"))))
-						switch (0) {
-							default:
-							{
-								char* _tmp17_;
-								self->priv->current_build_job.post_processor = (_tmp17_ = g_strdup (attr_values[i]), _g_free0 (self->priv->current_build_job.post_processor), _tmp17_);
+							_tmp23_ = FALSE;
+							if (!(i < attr_names_length1)) {
 								break;
 							}
-						} else
-						switch (0) {
-							default:
-							{
-								char* _tmp18_;
-								char* _tmp19_;
-								GError* _tmp20_;
-								_inner_error_ = (_tmp20_ = g_error_new_literal (G_MARKUP_ERROR, G_MARKUP_ERROR_UNKNOWN_ATTRIBUTE, _tmp19_ = g_strconcat (_tmp18_ = g_strconcat ("unknown attribute \"", attr_names[i], NULL), "\"", NULL)), _g_free0 (_tmp19_), _g_free0 (_tmp18_), _tmp20_);
-								{
-									if (_inner_error_->domain == G_MARKUP_ERROR) {
-										g_propagate_error (error, _inner_error_);
-										return;
-									} else {
-										g_critical ("file %s: line %d: uncaught error: %s (%s, %d)", __FILE__, __LINE__, _inner_error_->message, g_quark_to_string (_inner_error_->domain), _inner_error_->code);
-										g_clear_error (&_inner_error_);
-										return;
+							_tmp24_ = attr_names[i];
+							_tmp25_ = (NULL == _tmp24_) ? 0 : g_quark_from_string (_tmp24_);
+							if (_tmp25_ == ((0 != _tmp25__label0) ? _tmp25__label0 : (_tmp25__label0 = g_quark_from_static_string ("mustSucceed")))) {
+								switch (0) {
+									default:
+									{
+										gboolean _tmp26_;
+										_tmp26_ = string_to_bool (attr_values[i]);
+										self->priv->current_build_job.must_succeed = _tmp26_;
+										break;
+									}
+								}
+							} else if (_tmp25_ == ((0 != _tmp25__label1) ? _tmp25__label1 : (_tmp25__label1 = g_quark_from_static_string ("postProcessor")))) {
+								switch (0) {
+									default:
+									{
+										gchar* _tmp27_;
+										_tmp27_ = g_strdup (attr_values[i]);
+										_g_free0 (self->priv->current_build_job.post_processor);
+										self->priv->current_build_job.post_processor = _tmp27_;
+										break;
+									}
+								}
+							} else {
+								switch (0) {
+									default:
+									{
+										gchar* _tmp28_;
+										gchar* _tmp29_;
+										gchar* _tmp30_;
+										gchar* _tmp31_;
+										GError* _tmp32_ = NULL;
+										GError* _tmp33_;
+										_tmp28_ = g_strconcat ("unknown attribute \"", attr_names[i], NULL);
+										_tmp29_ = _tmp28_;
+										_tmp30_ = g_strconcat (_tmp29_, "\"", NULL);
+										_tmp31_ = _tmp30_;
+										_tmp32_ = g_error_new_literal (G_MARKUP_ERROR, G_MARKUP_ERROR_UNKNOWN_ATTRIBUTE, _tmp31_);
+										_tmp33_ = _tmp32_;
+										_g_free0 (_tmp31_);
+										_g_free0 (_tmp29_);
+										_inner_error_ = _tmp33_;
+										if (_inner_error_->domain == G_MARKUP_ERROR) {
+											g_propagate_error (error, _inner_error_);
+											return;
+										} else {
+											g_critical ("file %s: line %d: uncaught error: %s (%s, %d)", __FILE__, __LINE__, _inner_error_->message, g_quark_to_string (_inner_error_->domain), _inner_error_->code);
+											g_clear_error (&_inner_error_);
+											return;
+										}
 									}
 								}
 							}
 						}
 					}
 				}
+				break;
 			}
-			break;
 		}
-	} else
-	switch (0) {
-		default:
-		{
-			char* _tmp23_;
-			char* _tmp24_;
-			GError* _tmp25_;
-			_inner_error_ = (_tmp25_ = g_error_new_literal (G_MARKUP_ERROR, G_MARKUP_ERROR_UNKNOWN_ELEMENT, _tmp24_ = g_strconcat (_tmp23_ = g_strconcat ("unknown element \"", name, NULL), "\"", NULL)), _g_free0 (_tmp24_), _g_free0 (_tmp23_), _tmp25_);
+	} else {
+		switch (0) {
+			default:
 			{
+				gchar* _tmp34_;
+				gchar* _tmp35_;
+				gchar* _tmp36_;
+				gchar* _tmp37_;
+				GError* _tmp38_ = NULL;
+				GError* _tmp39_;
+				_tmp34_ = g_strconcat ("unknown element \"", name, NULL);
+				_tmp35_ = _tmp34_;
+				_tmp36_ = g_strconcat (_tmp35_, "\"", NULL);
+				_tmp37_ = _tmp36_;
+				_tmp38_ = g_error_new_literal (G_MARKUP_ERROR, G_MARKUP_ERROR_UNKNOWN_ELEMENT, _tmp37_);
+				_tmp39_ = _tmp38_;
+				_g_free0 (_tmp37_);
+				_g_free0 (_tmp35_);
+				_inner_error_ = _tmp39_;
 				if (_inner_error_->domain == G_MARKUP_ERROR) {
 					g_propagate_error (error, _inner_error_);
 					return;
@@ -1912,61 +2351,76 @@ static gpointer _build_job_dup0 (gpointer self) {
 }
 
 
-static void app_settings_parser_end (AppSettings* self, GMarkupParseContext* context, const char* name, GError** error) {
-	const char* _tmp3_;
-	GQuark _tmp4_;
-	static GQuark _tmp4__label0 = 0;
-	static GQuark _tmp4__label1 = 0;
-	static GQuark _tmp4__label2 = 0;
+static void app_settings_parser_end (AppSettings* self, GMarkupParseContext* context, const gchar* name, GError** error) {
+	const gchar* _tmp0_;
+	GQuark _tmp1_;
+	static GQuark _tmp1__label0 = 0;
+	static GQuark _tmp1__label1 = 0;
+	static GQuark _tmp1__label2 = 0;
 	GError * _inner_error_ = NULL;
 	g_return_if_fail (self != NULL);
 	g_return_if_fail (context != NULL);
 	g_return_if_fail (name != NULL);
-	_tmp3_ = name;
-	_tmp4_ = (NULL == _tmp3_) ? 0 : g_quark_from_string (_tmp3_);
-	if (_tmp4_ == ((0 != _tmp4__label0) ? _tmp4__label0 : (_tmp4__label0 = g_quark_from_static_string ("tools"))))
-	switch (0) {
-		default:
-		{
-			return;
+	_tmp0_ = name;
+	_tmp1_ = (NULL == _tmp0_) ? 0 : g_quark_from_string (_tmp0_);
+	if (_tmp1_ == ((0 != _tmp1__label0) ? _tmp1__label0 : (_tmp1__label0 = g_quark_from_static_string ("tools")))) {
+		switch (0) {
+			default:
+			{
+				return;
+			}
 		}
-	} else if (_tmp4_ == ((0 != _tmp4__label1) ? _tmp4__label1 : (_tmp4__label1 = g_quark_from_static_string ("tool"))))
-	switch (0) {
-		default:
-		{
-			gee_abstract_collection_add ((GeeAbstractCollection*) self->priv->build_tools, &self->priv->current_build_tool);
-			if (self->priv->current_tool_is_view_dvi) {
-				app_settings_set_build_tool_view_dvi (self, &self->priv->current_build_tool);
-				self->priv->current_tool_is_view_dvi = FALSE;
-			} else {
-				if (self->priv->current_tool_is_view_pdf) {
-					app_settings_set_build_tool_view_pdf (self, &self->priv->current_build_tool);
-					self->priv->current_tool_is_view_pdf = FALSE;
+	} else if (_tmp1_ == ((0 != _tmp1__label1) ? _tmp1__label1 : (_tmp1__label1 = g_quark_from_static_string ("tool")))) {
+		switch (0) {
+			default:
+			{
+				gee_abstract_collection_add ((GeeAbstractCollection*) self->priv->build_tools, &self->priv->current_build_tool);
+				if (self->priv->current_tool_is_view_dvi) {
+					app_settings_set_build_tool_view_dvi (self, &self->priv->current_build_tool);
+					self->priv->current_tool_is_view_dvi = FALSE;
 				} else {
-					if (self->priv->current_tool_is_view_ps) {
-						app_settings_set_build_tool_view_ps (self, &self->priv->current_build_tool);
-						self->priv->current_tool_is_view_ps = FALSE;
+					if (self->priv->current_tool_is_view_pdf) {
+						app_settings_set_build_tool_view_pdf (self, &self->priv->current_build_tool);
+						self->priv->current_tool_is_view_pdf = FALSE;
+					} else {
+						if (self->priv->current_tool_is_view_ps) {
+							app_settings_set_build_tool_view_ps (self, &self->priv->current_build_tool);
+							self->priv->current_tool_is_view_ps = FALSE;
+						}
 					}
 				}
+				break;
 			}
-			break;
 		}
-	} else if (_tmp4_ == ((0 != _tmp4__label2) ? _tmp4__label2 : (_tmp4__label2 = g_quark_from_static_string ("job"))))
-	switch (0) {
-		default:
-		{
-			self->priv->current_build_tool.jobs = g_list_append (self->priv->current_build_tool.jobs, _build_job_dup0 (&self->priv->current_build_job));
-			break;
+	} else if (_tmp1_ == ((0 != _tmp1__label2) ? _tmp1__label2 : (_tmp1__label2 = g_quark_from_static_string ("job")))) {
+		switch (0) {
+			default:
+			{
+				BuildJob* _tmp2_;
+				_tmp2_ = _build_job_dup0 (&self->priv->current_build_job);
+				self->priv->current_build_tool.jobs = g_list_append (self->priv->current_build_tool.jobs, _tmp2_);
+				break;
+			}
 		}
-	} else
-	switch (0) {
-		default:
-		{
-			char* _tmp0_;
-			char* _tmp1_;
-			GError* _tmp2_;
-			_inner_error_ = (_tmp2_ = g_error_new_literal (G_MARKUP_ERROR, G_MARKUP_ERROR_UNKNOWN_ELEMENT, _tmp1_ = g_strconcat (_tmp0_ = g_strconcat ("unknown element \"", name, NULL), "\"", NULL)), _g_free0 (_tmp1_), _g_free0 (_tmp0_), _tmp2_);
+	} else {
+		switch (0) {
+			default:
 			{
+				gchar* _tmp3_;
+				gchar* _tmp4_;
+				gchar* _tmp5_;
+				gchar* _tmp6_;
+				GError* _tmp7_ = NULL;
+				GError* _tmp8_;
+				_tmp3_ = g_strconcat ("unknown element \"", name, NULL);
+				_tmp4_ = _tmp3_;
+				_tmp5_ = g_strconcat (_tmp4_, "\"", NULL);
+				_tmp6_ = _tmp5_;
+				_tmp7_ = g_error_new_literal (G_MARKUP_ERROR, G_MARKUP_ERROR_UNKNOWN_ELEMENT, _tmp6_);
+				_tmp8_ = _tmp7_;
+				_g_free0 (_tmp6_);
+				_g_free0 (_tmp4_);
+				_inner_error_ = _tmp8_;
 				if (_inner_error_->domain == G_MARKUP_ERROR) {
 					g_propagate_error (error, _inner_error_);
 					return;
@@ -1981,128 +2435,190 @@ static void app_settings_parser_end (AppSettings* self, GMarkupParseContext* con
 }
 
 
-static void app_settings_parser_text (AppSettings* self, GMarkupParseContext* context, const char* text, gsize text_len, GError** error) {
+static void app_settings_parser_text (AppSettings* self, GMarkupParseContext* context, const gchar* text, gsize text_len, GError** error) {
+	const gchar* _tmp0_ = NULL;
 	g_return_if_fail (self != NULL);
 	g_return_if_fail (context != NULL);
 	g_return_if_fail (text != NULL);
-	if (_vala_strcmp0 (g_markup_parse_context_get_element (context), "job") == 0) {
-		char* _tmp0_;
-		self->priv->current_build_job.command = (_tmp0_ = g_strdup (text), _g_free0 (self->priv->current_build_job.command), _tmp0_);
+	_tmp0_ = g_markup_parse_context_get_element (context);
+	if (g_strcmp0 (_tmp0_, "job") == 0) {
+		gchar* _tmp1_;
+		_tmp1_ = g_strdup (text);
+		_g_free0 (self->priv->current_build_job.command);
+		self->priv->current_build_job.command = _tmp1_;
 	}
 }
 
 
-static char* bool_to_string (gboolean self) {
-	char* result = NULL;
+static gchar* bool_to_string (gboolean self) {
+	gchar* result = NULL;
 	if (self) {
-		result = g_strdup ("true");
+		gchar* _tmp0_;
+		_tmp0_ = g_strdup ("true");
+		result = _tmp0_;
 		return result;
 	} else {
-		result = g_strdup ("false");
+		gchar* _tmp1_;
+		_tmp1_ = g_strdup ("false");
+		result = _tmp1_;
 		return result;
 	}
 }
 
 
 void app_settings_save_build_tools (AppSettings* self) {
-	char* content;
-	char* _tmp14_;
+	gchar* _tmp0_;
+	gchar* content;
+	gchar* _tmp26_;
+	GFile* _tmp27_ = NULL;
+	GFile* file;
+	GFile* _tmp28_ = NULL;
+	GFile* parent;
+	gboolean _tmp29_ = FALSE;
+	gsize _tmp31_;
 	GError * _inner_error_ = NULL;
 	g_return_if_fail (self != NULL);
 	g_return_if_fail (self->priv->build_tools != NULL);
 	if (!self->priv->build_tools_modified) {
 		return;
 	}
-	content = g_strdup ("<tools>\n");
+	_tmp0_ = g_strdup ("<tools>\n");
+	content = _tmp0_;
 	{
-		GeeIterator* _tool_it;
-		_tool_it = gee_abstract_collection_iterator ((GeeAbstractCollection*) self->priv->build_tools);
+		GeeLinkedList* _tmp1_;
+		GeeLinkedList* _tool_list;
+		gint _tmp2_;
+		gint _tool_size;
+		gint _tool_index;
+		_tmp1_ = _g_object_ref0 (self->priv->build_tools);
+		_tool_list = _tmp1_;
+		_tmp2_ = gee_collection_get_size ((GeeCollection*) _tool_list);
+		_tool_size = _tmp2_;
+		_tool_index = -1;
 		while (TRUE) {
-			BuildTool* _tmp0_;
-			BuildTool _tmp1_ = {0};
-			BuildTool _tmp2_;
+			gpointer _tmp3_ = NULL;
+			BuildTool* _tmp4_;
+			BuildTool _tmp5_;
+			BuildTool _tmp6_ = {0};
+			BuildTool _tmp7_;
 			BuildTool tool;
-			char* _tmp3_;
-			char* _tmp4_;
-			char* _tmp5_;
-			char* _tmp6_;
-			char* _tmp13_;
-			if (!gee_iterator_next (_tool_it)) {
+			gchar* _tmp8_ = NULL;
+			gchar* _tmp9_;
+			gchar* _tmp10_ = NULL;
+			gchar* _tmp11_;
+			gchar* _tmp12_ = NULL;
+			gchar* _tmp13_;
+			gchar* _tmp14_;
+			gchar* _tmp25_;
+			_tool_index = _tool_index + 1;
+			if (!(_tool_index < _tool_size)) {
 				break;
 			}
-			tool = (_tmp2_ = (build_tool_copy (_tmp0_ = (BuildTool*) gee_iterator_get (_tool_it), &_tmp1_), _tmp1_), _build_tool_free0 (_tmp0_), _tmp2_);
-			content = (_tmp6_ = g_strconcat (content, _tmp5_ = g_strdup_printf ("  <tool description=\"%s\" extensions=\"%s\" label=\"%s\" icon=\"%s\">" \
-"\n", _tmp3_ = g_markup_escape_text (tool.description, -1), tool.extensions, _tmp4_ = g_markup_escape_text (tool.label, -1), tool.icon), NULL), _g_free0 (content), _tmp6_);
-			_g_free0 (_tmp5_);
-			_g_free0 (_tmp4_);
-			_g_free0 (_tmp3_);
+			_tmp3_ = gee_abstract_list_get ((GeeAbstractList*) _tool_list, _tool_index);
+			_tmp4_ = (BuildTool*) _tmp3_;
+			build_tool_copy (_tmp4_, &_tmp6_);
+			_tmp5_ = _tmp6_;
+			_tmp7_ = _tmp5_;
+			_build_tool_free0 (_tmp4_);
+			tool = _tmp7_;
+			_tmp8_ = g_markup_escape_text (tool.description, (gssize) (-1));
+			_tmp9_ = _tmp8_;
+			_tmp10_ = g_markup_escape_text (tool.label, (gssize) (-1));
+			_tmp11_ = _tmp10_;
+			_tmp12_ = g_strdup_printf ("  <tool description=\"%s\" extensions=\"%s\" label=\"%s\" icon=\"%s\">" \
+"\n", _tmp9_, tool.extensions, _tmp11_, tool.icon);
+			_tmp13_ = _tmp12_;
+			_tmp14_ = g_strconcat (content, _tmp13_, NULL);
+			_g_free0 (content);
+			content = _tmp14_;
+			_g_free0 (_tmp13_);
+			_g_free0 (_tmp11_);
+			_g_free0 (_tmp9_);
 			{
 				GList* job_collection;
 				GList* job_it;
 				job_collection = tool.jobs;
 				for (job_it = job_collection; job_it != NULL; job_it = job_it->next) {
-					BuildJob _tmp12_ = {0};
+					BuildJob _tmp15_;
+					BuildJob _tmp16_ = {0};
 					BuildJob job;
-					job = (build_job_copy ((BuildJob*) job_it->data, &_tmp12_), _tmp12_);
+					build_job_copy ((BuildJob*) job_it->data, &_tmp16_);
+					_tmp15_ = _tmp16_;
+					job = _tmp15_;
 					{
-						char* _tmp7_;
-						char* _tmp8_;
-						char* _tmp9_;
-						char* _tmp10_;
-						char* _tmp11_;
-						content = (_tmp9_ = g_strconcat (content, _tmp8_ = g_strdup_printf ("    <job mustSucceed=\"%s\" postProcessor=\"%s\">", _tmp7_ = bool_to_string (job.must_succeed), job.post_processor), NULL), _g_free0 (content), _tmp9_);
-						_g_free0 (_tmp8_);
-						_g_free0 (_tmp7_);
-						content = (_tmp11_ = g_strconcat (content, _tmp10_ = g_markup_printf_escaped ("%s</job>\n", job.command), NULL), _g_free0 (content), _tmp11_);
-						_g_free0 (_tmp10_);
+						gchar* _tmp17_ = NULL;
+						gchar* _tmp18_;
+						gchar* _tmp19_ = NULL;
+						gchar* _tmp20_;
+						gchar* _tmp21_;
+						gchar* _tmp22_ = NULL;
+						gchar* _tmp23_;
+						gchar* _tmp24_;
+						_tmp17_ = bool_to_string (job.must_succeed);
+						_tmp18_ = _tmp17_;
+						_tmp19_ = g_strdup_printf ("    <job mustSucceed=\"%s\" postProcessor=\"%s\">", _tmp18_, job.post_processor);
+						_tmp20_ = _tmp19_;
+						_tmp21_ = g_strconcat (content, _tmp20_, NULL);
+						_g_free0 (content);
+						content = _tmp21_;
+						_g_free0 (_tmp20_);
+						_g_free0 (_tmp18_);
+						_tmp22_ = g_markup_printf_escaped ("%s</job>\n", job.command);
+						_tmp23_ = _tmp22_;
+						_tmp24_ = g_strconcat (content, _tmp23_, NULL);
+						_g_free0 (content);
+						content = _tmp24_;
+						_g_free0 (_tmp23_);
 						build_job_destroy (&job);
 					}
 				}
 			}
-			content = (_tmp13_ = g_strconcat (content, "  </tool>\n", NULL), _g_free0 (content), _tmp13_);
+			_tmp25_ = g_strconcat (content, "  </tool>\n", NULL);
+			_g_free0 (content);
+			content = _tmp25_;
 			build_tool_destroy (&tool);
 		}
-		_g_object_unref0 (_tool_it);
+		_g_object_unref0 (_tool_list);
 	}
-	content = (_tmp14_ = g_strconcat (content, "</tools>\n", NULL), _g_free0 (content), _tmp14_);
-	{
-		GFile* file;
-		GFile* parent;
-		gboolean _tmp15_ = FALSE;
-		file = app_settings_get_user_config_build_tools_file (self);
-		parent = g_file_get_parent (file);
-		if (parent != NULL) {
-			_tmp15_ = !g_file_query_exists (parent, NULL);
-		} else {
-			_tmp15_ = FALSE;
-		}
-		if (_tmp15_) {
-			g_file_make_directory_with_parents (parent, NULL, &_inner_error_);
-			if (_inner_error_ != NULL) {
-				_g_object_unref0 (parent);
-				_g_object_unref0 (file);
-				goto __catch22_g_error;
-			}
-		}
-		g_file_replace_contents (file, content, strlen (content), NULL, TRUE, G_FILE_CREATE_NONE, NULL, NULL, &_inner_error_);
+	_tmp26_ = g_strconcat (content, "</tools>\n", NULL);
+	_g_free0 (content);
+	content = _tmp26_;
+	_tmp27_ = app_settings_get_user_config_build_tools_file (self);
+	file = _tmp27_;
+	_tmp28_ = g_file_get_parent (file);
+	parent = _tmp28_;
+	if (parent != NULL) {
+		gboolean _tmp30_;
+		_tmp30_ = g_file_query_exists (parent, NULL);
+		_tmp29_ = !_tmp30_;
+	} else {
+		_tmp29_ = FALSE;
+	}
+	if (_tmp29_) {
+		g_file_make_directory_with_parents (parent, NULL, &_inner_error_);
 		if (_inner_error_ != NULL) {
 			_g_object_unref0 (parent);
 			_g_object_unref0 (file);
 			goto __catch22_g_error;
 		}
+	}
+	_tmp31_ = strlen (content);
+	g_file_replace_contents (file, content, _tmp31_, NULL, TRUE, G_FILE_CREATE_NONE, NULL, NULL, &_inner_error_);
+	if (_inner_error_ != NULL) {
 		_g_object_unref0 (parent);
 		_g_object_unref0 (file);
+		goto __catch22_g_error;
 	}
+	_g_object_unref0 (parent);
+	_g_object_unref0 (file);
 	goto __finally22;
 	__catch22_g_error:
 	{
 		GError * e;
 		e = _inner_error_;
 		_inner_error_ = NULL;
-		{
-			fprintf (stderr, "Warning: impossible to save build tools: %s\n", e->message);
-			_g_error_free0 (e);
-		}
+		fprintf (stderr, "Warning: impossible to save build tools: %s\n", e->message);
+		_g_error_free0 (e);
 	}
 	__finally22:
 	if (_inner_error_ != NULL) {
@@ -2117,27 +2633,35 @@ void app_settings_save_build_tools (AppSettings* self) {
 
 static GFile* app_settings_get_user_config_build_tools_file (AppSettings* self) {
 	GFile* result = NULL;
-	char* path;
+	const gchar* _tmp0_ = NULL;
+	gchar* _tmp1_ = NULL;
+	gchar* path;
+	GFile* _tmp2_ = NULL;
 	g_return_val_if_fail (self != NULL, NULL);
-	path = g_build_filename (g_get_user_config_dir (), "latexila", "build_tools.xml", NULL, NULL);
-	result = g_file_new_for_path (path);
+	_tmp0_ = g_get_user_config_dir ();
+	_tmp1_ = g_build_filename (_tmp0_, "latexila", "build_tools.xml", NULL, NULL);
+	path = _tmp1_;
+	_tmp2_ = g_file_new_for_path (path);
+	result = _tmp2_;
 	_g_free0 (path);
 	return result;
 }
 
 
-const char* app_settings_get_system_font (AppSettings* self) {
-	const char* result;
+const gchar* app_settings_get_system_font (AppSettings* self) {
+	const gchar* result;
 	g_return_val_if_fail (self != NULL, NULL);
 	result = self->priv->_system_font;
 	return result;
 }
 
 
-static void app_settings_set_system_font (AppSettings* self, const char* value) {
-	char* _tmp0_;
+static void app_settings_set_system_font (AppSettings* self, const gchar* value) {
+	gchar* _tmp0_;
 	g_return_if_fail (self != NULL);
-	self->priv->_system_font = (_tmp0_ = g_strdup (value), _g_free0 (self->priv->_system_font), _tmp0_);
+	_tmp0_ = g_strdup (value);
+	_g_free0 (self->priv->_system_font);
+	self->priv->_system_font = _tmp0_;
 	g_object_notify ((GObject *) self, "system-font");
 }
 
@@ -2150,10 +2674,13 @@ void app_settings_get_build_tool_view_dvi (AppSettings* self, BuildTool* result)
 
 
 static void app_settings_set_build_tool_view_dvi (AppSettings* self, BuildTool* value) {
-	BuildTool _tmp0_ = {0};
-	BuildTool _tmp1_;
+	BuildTool _tmp0_;
+	BuildTool _tmp1_ = {0};
 	g_return_if_fail (self != NULL);
-	self->priv->_build_tool_view_dvi = (_tmp1_ = (build_tool_copy (value, &_tmp0_), _tmp0_), build_tool_destroy (&self->priv->_build_tool_view_dvi), _tmp1_);
+	build_tool_copy (value, &_tmp1_);
+	_tmp0_ = _tmp1_;
+	build_tool_destroy (&self->priv->_build_tool_view_dvi);
+	self->priv->_build_tool_view_dvi = _tmp0_;
 	g_object_notify ((GObject *) self, "build-tool-view-dvi");
 }
 
@@ -2166,10 +2693,13 @@ void app_settings_get_build_tool_view_pdf (AppSettings* self, BuildTool* result)
 
 
 static void app_settings_set_build_tool_view_pdf (AppSettings* self, BuildTool* value) {
-	BuildTool _tmp0_ = {0};
-	BuildTool _tmp1_;
+	BuildTool _tmp0_;
+	BuildTool _tmp1_ = {0};
 	g_return_if_fail (self != NULL);
-	self->priv->_build_tool_view_pdf = (_tmp1_ = (build_tool_copy (value, &_tmp0_), _tmp0_), build_tool_destroy (&self->priv->_build_tool_view_pdf), _tmp1_);
+	build_tool_copy (value, &_tmp1_);
+	_tmp0_ = _tmp1_;
+	build_tool_destroy (&self->priv->_build_tool_view_pdf);
+	self->priv->_build_tool_view_pdf = _tmp0_;
 	g_object_notify ((GObject *) self, "build-tool-view-pdf");
 }
 
@@ -2182,10 +2712,13 @@ void app_settings_get_build_tool_view_ps (AppSettings* self, BuildTool* result)
 
 
 static void app_settings_set_build_tool_view_ps (AppSettings* self, BuildTool* value) {
-	BuildTool _tmp0_ = {0};
-	BuildTool _tmp1_;
+	BuildTool _tmp0_;
+	BuildTool _tmp1_ = {0};
 	g_return_if_fail (self != NULL);
-	self->priv->_build_tool_view_ps = (_tmp1_ = (build_tool_copy (value, &_tmp0_), _tmp0_), build_tool_destroy (&self->priv->_build_tool_view_ps), _tmp1_);
+	build_tool_copy (value, &_tmp1_);
+	_tmp0_ = _tmp1_;
+	build_tool_destroy (&self->priv->_build_tool_view_ps);
+	self->priv->_build_tool_view_ps = _tmp0_;
 	g_object_notify ((GObject *) self, "build-tool-view-ps");
 }
 
@@ -2193,8 +2726,8 @@ static void app_settings_set_build_tool_view_ps (AppSettings* self, BuildTool* v
 static void app_settings_class_init (AppSettingsClass * klass) {
 	app_settings_parent_class = g_type_class_peek_parent (klass);
 	g_type_class_add_private (klass, sizeof (AppSettingsPrivate));
-	G_OBJECT_CLASS (klass)->get_property = app_settings_get_property;
-	G_OBJECT_CLASS (klass)->set_property = app_settings_set_property;
+	G_OBJECT_CLASS (klass)->get_property = _vala_app_settings_get_property;
+	G_OBJECT_CLASS (klass)->set_property = _vala_app_settings_set_property;
 	G_OBJECT_CLASS (klass)->finalize = app_settings_finalize;
 	g_object_class_install_property (G_OBJECT_CLASS (klass), APP_SETTINGS_SYSTEM_FONT, g_param_spec_string ("system-font", "system-font", "system-font", NULL, G_PARAM_STATIC_NAME | G_PARAM_STATIC_NICK | G_PARAM_STATIC_BLURB | G_PARAM_READABLE));
 	g_object_class_install_property (G_OBJECT_CLASS (klass), APP_SETTINGS_BUILD_TOOL_VIEW_DVI, g_param_spec_boxed ("build-tool-view-dvi", "build-tool-view-dvi", "build-tool-view-dvi", TYPE_BUILD_TOOL, G_PARAM_STATIC_NAME | G_PARAM_STATIC_NICK | G_PARAM_STATIC_BLURB | G_PARAM_READABLE));
@@ -2243,7 +2776,7 @@ GType app_settings_get_type (void) {
 }
 
 
-static void app_settings_get_property (GObject * object, guint property_id, GValue * value, GParamSpec * pspec) {
+static void _vala_app_settings_get_property (GObject * object, guint property_id, GValue * value, GParamSpec * pspec) {
 	AppSettings * self;
 	BuildTool boxed0;
 	BuildTool boxed1;
@@ -2272,7 +2805,7 @@ static void app_settings_get_property (GObject * object, guint property_id, GVal
 }
 
 
-static void app_settings_set_property (GObject * object, guint property_id, const GValue * value, GParamSpec * pspec) {
+static void _vala_app_settings_set_property (GObject * object, guint property_id, const GValue * value, GParamSpec * pspec) {
 	AppSettings * self;
 	self = APP_SETTINGS (object);
 	switch (property_id) {
@@ -2325,16 +2858,4 @@ static gint _vala_array_length (gpointer array) {
 }
 
 
-static int _vala_strcmp0 (const char * str1, const char * str2) {
-	if (str1 == NULL) {
-		return -(str1 != str2);
-	}
-	if (str2 == NULL) {
-		return str1 != str2;
-	}
-	return strcmp (str1, str2);
-}
-
-
-
 
diff --git a/src/C/application.c b/src/C/application.c
index 94d9c29..36ad1b1 100644
--- a/src/C/application.c
+++ b/src/C/application.c
@@ -1,4 +1,4 @@
-/* application.c generated by valac 0.10.3, the Vala compiler
+/* application.c generated by valac 0.12.1, the Vala compiler
  * generated from application.vala, do not modify */
 
 /*
@@ -58,7 +58,7 @@ typedef struct _MainWindowClass MainWindowClass;
 
 #define APPLICATION_TYPE_STOCK_ICON (application_stock_icon_get_type ())
 typedef struct _ApplicationStockIcon ApplicationStockIcon;
-#define __g_list_free_g_object_unref0(var) ((var == NULL) ? NULL : (var = (_g_list_free_g_object_unref (var), NULL)))
+#define __g_list_free__g_object_unref0_0(var) ((var == NULL) ? NULL : (var = (_g_list_free__g_object_unref0_ (var), NULL)))
 #define _g_error_free0(var) ((var == NULL) ? NULL : (var = (g_error_free (var), NULL)))
 #define _g_free0(var) (var = (g_free (var), NULL))
 
@@ -91,6 +91,7 @@ typedef struct _DocumentClass DocumentClass;
 
 typedef struct _DocumentView DocumentView;
 typedef struct _DocumentViewClass DocumentViewClass;
+typedef struct _Block19Data Block19Data;
 
 #define TYPE_PROJECTS (projects_get_type ())
 #define PROJECTS(obj) (G_TYPE_CHECK_INSTANCE_CAST ((obj), TYPE_PROJECTS, Projects))
@@ -102,7 +103,6 @@ typedef struct _DocumentViewClass DocumentViewClass;
 typedef struct _Projects Projects;
 typedef struct _ProjectsClass ProjectsClass;
 #define _projects_unref0(var) ((var == NULL) ? NULL : (var = (projects_unref (var), NULL)))
-typedef struct _Block19Data Block19Data;
 
 #define TYPE_DOCUMENT_TAB (document_tab_get_type ())
 #define DOCUMENT_TAB(obj) (G_TYPE_CHECK_INSTANCE_CAST ((obj), TYPE_DOCUMENT_TAB, DocumentTab))
@@ -131,8 +131,8 @@ struct _ApplicationPrivate {
 };
 
 struct _ApplicationStockIcon {
-	char* filename;
-	char* stock_id;
+	gchar* filename;
+	gchar* stock_id;
 };
 
 struct _Block19Data {
@@ -142,11 +142,11 @@ struct _Block19Data {
 };
 
 
+static gpointer application_parent_class = NULL;
 extern gint application_NEW_WINDOW;
 gint application_NEW_WINDOW = 1;
 static Application* application_instance;
 static Application* application_instance = NULL;
-static gpointer application_parent_class = NULL;
 
 GType application_get_type (void) G_GNUC_CONST;
 GType main_window_get_type (void) G_GNUC_CONST;
@@ -164,7 +164,8 @@ static void application_stock_icon_destroy (ApplicationStockIcon* self);
 static Application* application_new (void);
 static Application* application_construct (GType object_type);
 static void application_set_windows (Application* self, GList* value);
-static void _g_list_free_g_object_unref (GList* self);
+static void _g_object_unref0_ (gpointer var);
+static void _g_list_free__g_object_unref0_ (GList* self);
 static void application_register_my_stock_icons (Application* self);
 GType app_settings_get_type (void) G_GNUC_CONST;
 AppSettings* app_settings_get_default (void);
@@ -182,11 +183,13 @@ MainWindow* application_get_active_window (Application* self);
 gboolean main_window_is_on_workspace_screen (MainWindow* self, GdkScreen* screen, guint workspace);
 static void application_set_active_window (Application* self, MainWindow* value);
 void application_create_document (Application* self);
-void application_open_documents (Application* self, char** uris);
+void application_open_documents (Application* self, gchar** uris);
+static Block19Data* block19_data_ref (Block19Data* _data19_);
+static void block19_data_unref (Block19Data* _data19_);
 void main_window_save_state (MainWindow* self, gboolean sync);
 MainWindow* main_window_new (void);
 MainWindow* main_window_construct (GType object_type);
-static void _lambda61_ (Block19Data* _data19_);
+static void _lambda64_ (Block19Data* _data19_);
 void app_settings_save_build_tools (AppSettings* self);
 void app_settings_save_most_used_symbols (AppSettings* self);
 gpointer projects_ref (gpointer instance);
@@ -198,26 +201,28 @@ gpointer value_get_projects (const GValue* value);
 GType projects_get_type (void) G_GNUC_CONST;
 Projects* projects_get_default (void);
 void projects_save (Projects* self);
-static void __lambda61__gtk_object_destroy (GtkObject* _sender, gpointer self);
-static gboolean _lambda62_ (Block19Data* _data19_);
-static gboolean __lambda62__gtk_widget_focus_in_event (GtkWidget* _sender, GdkEventFocus* event, gpointer self);
-static Block19Data* block19_data_ref (Block19Data* _data19_);
-static void block19_data_unref (Block19Data* _data19_);
+static void __lambda64__gtk_object_destroy (GtkObject* _sender, gpointer self);
+static gboolean _lambda65_ (Block19Data* _data19_);
+static gboolean __lambda65__gtk_widget_focus_in_event (GtkWidget* _sender, GdkEventFocus* event, gpointer self);
 GType document_tab_get_type (void) G_GNUC_CONST;
 DocumentTab* main_window_create_tab (MainWindow* self, gboolean jump_to);
 DocumentTab* main_window_open_document (MainWindow* self, GFile* location);
 static void application_finalize (GObject* obj);
-static void application_get_property (GObject * object, guint property_id, GValue * value, GParamSpec * pspec);
-static void application_set_property (GObject * object, guint property_id, const GValue * value, GParamSpec * pspec);
+static void _vala_application_get_property (GObject * object, guint property_id, GValue * value, GParamSpec * pspec);
+static void _vala_application_set_property (GObject * object, guint property_id, const GValue * value, GParamSpec * pspec);
 static void _vala_array_destroy (gpointer array, gint array_length, GDestroyNotify destroy_func);
 static void _vala_array_free (gpointer array, gint array_length, GDestroyNotify destroy_func);
 static gint _vala_array_length (gpointer array);
 
 static const ApplicationStockIcon APPLICATION_stock_icons[73] = {{DATA_DIR "/images/icons/compile_dvi.png", "compile_dvi"}, {DATA_DIR "/images/icons/compile_pdf.png", "compile_pdf"}, {DATA_DIR "/images/icons/compile_ps.png", "compile_ps"}, {DATA_DIR "/images/icons/view_dvi.png", "view_dvi"}, {DATA_DIR "/images/icons/view_pdf.png", "view_pdf"}, {DATA_DIR "/images/icons/view_ps.png", "view_ps"}, {DATA_DIR "/images/icons/textbf.png", "bold"}, {DATA_DIR "/images/icons/textit.png", "italic"}, {DATA_DIR "/images/icons/texttt.png", "typewriter"}, {DATA_DIR "/images/icons/textsl.png", "slanted"}, {DATA_DIR "/images/icons/textsc.png", "small_caps"}, {DATA_DIR "/images/icons/textsf.png", "sans_serif"}, {DATA_DIR "/images/icons/roman.png", "roman"}, {DATA_DIR "/images/icons/underline.png", "underline"}, {DATA_DIR "/images/misc-math/set-R.png", "blackboard"}, {DATA_DIR "/images/icons/sectioning-part.png", "sectioning-part"}, {DATA_DIR "/images/icons/sectioning-chapter.png", "sectioning-
 chapter"}, {DATA_DIR "/images/icons/sectioning-section.png", "sectioning-section"}, {DATA_DIR "/images/icons/sectioning-subsection.png", "sectioning-subsection"}, {DATA_DIR "/images/icons/sectioning-subsubsection.png", "sectioning-subsubsection"}, {DATA_DIR "/images/icons/sectioning-paragraph.png", "sectioning-paragraph"}, {DATA_DIR "/images/icons/character-size.png", "character-size"}, {DATA_DIR "/images/icons/list-itemize.png", "list-itemize"}, {DATA_DIR "/images/icons/list-enumerate.png", "list-enumerate"}, {DATA_DIR "/images/icons/list-description.png", "list-description"}, {DATA_DIR "/images/icons/list-item.png", "list-item"}, {DATA_DIR "/images/icons/references.png", "references"}, {DATA_DIR "/images/icons/math.png", "math"}, {DATA_DIR "/images/icons/math-centered.png", "math-centered"}, {DATA_DIR "/images/icons/math-numbered.png", "math-numbered"}, {DATA_DIR "/images/icons/math-array.png", "math-array"}, {DATA_DIR "/images/icons/math-numbered-array.png", "math-numbere
 d-array"}, {DATA_DIR "/images/icons/math-superscript.png", "math-superscript"}, {DATA_DIR "/images/icons/math-subscript.png", "math-subscript"}, {DATA_DIR "/images/icons/math-frac.png", "math-frac"}, {DATA_DIR "/images/icons/math-square-root.png", "math-square-root"}, {DATA_DIR "/images/icons/math-nth-root.png", "math-nth-root"}, {DATA_DIR "/images/icons/mathcal.png", "mathcal"}, {DATA_DIR "/images/icons/mathfrak.png", "mathfrak"}, {DATA_DIR "/images/icons/delimiters-left.png", "delimiters-left"}, {DATA_DIR "/images/icons/delimiters-right.png", "delimiters-right"}, {DATA_DIR "/images/icons/badbox.png", "badbox"}, {DATA_DIR "/images/icons/logviewer.png", "view_log"}, {DATA_DIR "/images/greek/01.png", "symbol_alpha"}, {DATA_DIR "/images/icons/accent0.png", "accent0"}, {DATA_DIR "/images/icons/accent1.png", "accent1"}, {DATA_DIR "/images/icons/accent2.png", "accent2"}, {DATA_DIR "/images/icons/accent3.png", "accent3"}, {DATA_DIR "/images/icons/accent4.png", "accent4"}, {DATA_DI
 R "/images/icons/accent5.png", "accent5"}, {DATA_DIR "/images/icons/accent6.png", "accent6"}, {DATA_DIR "/images/icons/accent7.png", "accent7"}, {DATA_DIR "/images/icons/accent8.png", "accent8"}, {DATA_DIR "/images/icons/accent9.png", "accent9"}, {DATA_DIR "/images/icons/accent10.png", "accent10"}, {DATA_DIR "/images/icons/accent11.png", "accent11"}, {DATA_DIR "/images/icons/accent12.png", "accent12"}, {DATA_DIR "/images/icons/accent13.png", "accent13"}, {DATA_DIR "/images/icons/accent14.png", "accent14"}, {DATA_DIR "/images/icons/accent15.png", "accent15"}, {DATA_DIR "/images/icons/mathaccent0.png", "mathaccent0"}, {DATA_DIR "/images/icons/mathaccent1.png", "mathaccent1"}, {DATA_DIR "/images/icons/mathaccent2.png", "mathaccent2"}, {DATA_DIR "/images/icons/mathaccent3.png", "mathaccent3"}, {DATA_DIR "/images/icons/mathaccent4.png", "mathaccent4"}, {DATA_DIR "/images/icons/mathaccent5.png", "mathaccent5"}, {DATA_DIR "/images/icons/mathaccent6.png", "mathaccent6"}, {DATA_DIR "
 /images/icons/mathaccent7.png", "mathaccent7"}, {DATA_DIR "/images/icons/mathaccent8.png", "mathaccent8"}, {DATA_DIR "/images/icons/mathaccent9.png", "mathaccent9"}, {DATA_DIR "/images/icons/mathaccent10.png", "mathaccent10"}, {DATA_DIR "/images/icons/completion_choice.png", "completion_choice"}, {DATA_DIR "/images/icons/completion_cmd.png", "completion_cmd"}};
 
+static void _g_object_unref0_ (gpointer var) {
+	(var == NULL) ? NULL : (var = (g_object_unref (var), NULL));
+}
+
 
-static void _g_list_free_g_object_unref (GList* self) {
-	g_list_foreach (self, (GFunc) g_object_unref, NULL);
+static void _g_list_free__g_object_unref0_ (GList* self) {
+	g_list_foreach (self, (GFunc) _g_object_unref0_, NULL);
 	g_list_free (self);
 }
 
@@ -225,18 +230,25 @@ static void _g_list_free_g_object_unref (GList* self) {
 static Application* application_construct (GType object_type) {
 	Application * self = NULL;
 	GList* _tmp0_;
+	gchar* _tmp1_;
+	gchar* _tmp2_;
+	gchar* _tmp3_;
+	gchar* _tmp4_;
+	gchar* _tmp5_;
+	gchar** _tmp6_ = NULL;
+	gchar** filenames;
 	gint filenames_length1;
 	gint _filenames_size_;
-	char** _tmp2_;
-	char** _tmp1_ = NULL;
-	char** filenames;
 	GList* list;
-	AppSettings* _tmp4_;
-	MainWindow* _tmp5_;
+	AppSettings* _tmp10_ = NULL;
+	AppSettings* _tmp11_;
+	MainWindow* _tmp12_ = NULL;
+	MainWindow* _tmp13_;
 	GError * _inner_error_ = NULL;
 	self = (Application*) g_object_new (object_type, NULL);
-	application_set_windows (self, _tmp0_ = NULL);
-	__g_list_free_g_object_unref0 (_tmp0_);
+	_tmp0_ = NULL;
+	application_set_windows (self, _tmp0_);
+	__g_list_free__g_object_unref0_0 (_tmp0_);
 	gtk_rc_parse_string ("\n" \
 "            style \"my-button-style\"\n" \
 "            {\n" \
@@ -247,41 +259,54 @@ static Application* application_construct (GType object_type) {
 "            }\n" \
 "            widget \"*.my-close-button\" style \"my-button-style\"\n" \
 "        ");
-	filenames = (_tmp2_ = (_tmp1_ = g_new0 (char*, 5 + 1), _tmp1_[0] = g_strdup (ICONS_DIR "/16x16/apps/latexila.png"), _tmp1_[1] = g_strdup (ICONS_DIR "/22x22/apps/latexila.png"), _tmp1_[2] = g_strdup (ICONS_DIR "/24x24/apps/latexila.png"), _tmp1_[3] = g_strdup (ICONS_DIR "/32x32/apps/latexila.png"), _tmp1_[4] = g_strdup (ICONS_DIR "/48x48/apps/latexila.png"), _tmp1_), filenames_length1 = 5, _filenames_size_ = filenames_length1, _tmp2_);
+	_tmp1_ = g_strdup (ICONS_DIR "/16x16/apps/latexila.png");
+	_tmp2_ = g_strdup (ICONS_DIR "/22x22/apps/latexila.png");
+	_tmp3_ = g_strdup (ICONS_DIR "/24x24/apps/latexila.png");
+	_tmp4_ = g_strdup (ICONS_DIR "/32x32/apps/latexila.png");
+	_tmp5_ = g_strdup (ICONS_DIR "/48x48/apps/latexila.png");
+	_tmp6_ = g_new0 (gchar*, 5 + 1);
+	_tmp6_[0] = _tmp1_;
+	_tmp6_[1] = _tmp2_;
+	_tmp6_[2] = _tmp3_;
+	_tmp6_[3] = _tmp4_;
+	_tmp6_[4] = _tmp5_;
+	filenames = _tmp6_;
+	filenames_length1 = 5;
+	_filenames_size_ = 5;
 	list = NULL;
 	{
-		char** filename_collection;
+		gchar** filename_collection;
 		int filename_collection_length1;
 		int filename_it;
 		filename_collection = filenames;
 		filename_collection_length1 = filenames_length1;
 		for (filename_it = 0; filename_it < filenames_length1; filename_it = filename_it + 1) {
-			char* filename;
-			filename = g_strdup (filename_collection[filename_it]);
+			gchar* _tmp7_;
+			gchar* filename;
+			_tmp7_ = g_strdup (filename_collection[filename_it]);
+			filename = _tmp7_;
 			{
-				{
-					GdkPixbuf* _tmp3_;
-					_tmp3_ = gdk_pixbuf_new_from_file (filename, &_inner_error_);
-					if (_inner_error_ != NULL) {
-						goto __catch42_g_error;
-					}
-					list = g_list_append (list, _tmp3_);
+				GdkPixbuf* _tmp8_ = NULL;
+				GdkPixbuf* _tmp9_;
+				_tmp8_ = gdk_pixbuf_new_from_file (filename, &_inner_error_);
+				_tmp9_ = _tmp8_;
+				if (_inner_error_ != NULL) {
+					goto __catch42_g_error;
 				}
+				list = g_list_append (list, _tmp9_);
 				goto __finally42;
 				__catch42_g_error:
 				{
 					GError * e;
 					e = _inner_error_;
 					_inner_error_ = NULL;
-					{
-						fprintf (stderr, "Error with an icon: %s\n", e->message);
-						_g_error_free0 (e);
-					}
+					fprintf (stderr, "Error with an icon: %s\n", e->message);
+					_g_error_free0 (e);
 				}
 				__finally42:
 				if (_inner_error_ != NULL) {
 					_g_free0 (filename);
-					__g_list_free_g_object_unref0 (list);
+					__g_list_free__g_object_unref0_0 (list);
 					filenames = (_vala_array_free (filenames, filenames_length1, (GDestroyNotify) g_free), NULL);
 					g_critical ("file %s: line %d: uncaught error: %s (%s, %d)", __FILE__, __LINE__, _inner_error_->message, g_quark_to_string (_inner_error_->domain), _inner_error_->code);
 					g_clear_error (&_inner_error_);
@@ -293,11 +318,13 @@ static Application* application_construct (GType object_type) {
 	}
 	gtk_window_set_default_icon_list (list);
 	application_register_my_stock_icons (self);
-	_tmp4_ = app_settings_get_default ();
-	_g_object_unref0 (_tmp4_);
-	_tmp5_ = application_create_window (self, NULL);
-	_g_object_unref0 (_tmp5_);
-	__g_list_free_g_object_unref0 (list);
+	_tmp10_ = app_settings_get_default ();
+	_tmp11_ = _tmp10_;
+	_g_object_unref0 (_tmp11_);
+	_tmp12_ = application_create_window (self, NULL);
+	_tmp13_ = _tmp12_;
+	_g_object_unref0 (_tmp13_);
+	__g_list_free__g_object_unref0_0 (list);
 	filenames = (_vala_array_free (filenames, filenames_length1, (GDestroyNotify) g_free), NULL);
 	return self;
 }
@@ -315,11 +342,15 @@ static gpointer _g_object_ref0 (gpointer self) {
 
 Application* application_get_default (void) {
 	Application* result = NULL;
+	Application* _tmp1_;
 	if (application_instance == NULL) {
-		Application* _tmp0_;
-		application_instance = (_tmp0_ = application_new (), _g_object_unref0 (application_instance), _tmp0_);
+		Application* _tmp0_ = NULL;
+		_tmp0_ = application_new ();
+		_g_object_unref0 (application_instance);
+		application_instance = _tmp0_;
 	}
-	result = _g_object_ref0 (application_instance);
+	_tmp1_ = _g_object_ref0 (application_instance);
+	result = _tmp1_;
 	return result;
 }
 
@@ -334,10 +365,14 @@ GList* application_get_documents (Application* self) {
 		GList* w_it;
 		w_collection = self->priv->_windows;
 		for (w_it = w_collection; w_it != NULL; w_it = w_it->next) {
+			MainWindow* _tmp0_;
 			MainWindow* w;
-			w = _g_object_ref0 ((MainWindow*) w_it->data);
+			_tmp0_ = _g_object_ref0 ((MainWindow*) w_it->data);
+			w = _tmp0_;
 			{
-				res = g_list_concat (res, main_window_get_documents (w));
+				GList* _tmp1_ = NULL;
+				_tmp1_ = main_window_get_documents (w);
+				res = g_list_concat (res, _tmp1_);
 				_g_object_unref0 (w);
 			}
 		}
@@ -357,10 +392,14 @@ GList* application_get_views (Application* self) {
 		GList* w_it;
 		w_collection = self->priv->_windows;
 		for (w_it = w_collection; w_it != NULL; w_it = w_it->next) {
+			MainWindow* _tmp0_;
 			MainWindow* w;
-			w = _g_object_ref0 ((MainWindow*) w_it->data);
+			_tmp0_ = _g_object_ref0 ((MainWindow*) w_it->data);
+			w = _tmp0_;
 			{
-				res = g_list_concat (res, main_window_get_views (w));
+				GList* _tmp1_ = NULL;
+				_tmp1_ = main_window_get_views (w);
+				res = g_list_concat (res, _tmp1_);
 				_g_object_unref0 (w);
 			}
 		}
@@ -372,21 +411,31 @@ GList* application_get_views (Application* self) {
 
 UniqueResponse application_message (Application* self, UniqueApp* sender, gint command, UniqueMessageData* data, guint time) {
 	UniqueResponse result = 0;
+	guint _tmp2_;
 	guint workspace;
+	GdkScreen* _tmp3_ = NULL;
+	GdkScreen* _tmp4_;
 	GdkScreen* screen;
+	gboolean _tmp5_;
 	g_return_val_if_fail (self != NULL, 0);
 	g_return_val_if_fail (sender != NULL, 0);
 	g_return_val_if_fail (data != NULL, 0);
 	if (command == application_NEW_WINDOW) {
-		MainWindow* _tmp0_;
+		MainWindow* _tmp0_ = NULL;
+		MainWindow* _tmp1_;
 		_tmp0_ = application_create_window (self, NULL);
-		_g_object_unref0 (_tmp0_);
+		_tmp1_ = _tmp0_;
+		_g_object_unref0 (_tmp1_);
 		result = UNIQUE_RESPONSE_OK;
 		return result;
 	}
-	workspace = unique_message_data_get_workspace (data);
-	screen = _g_object_ref0 (unique_message_data_get_screen (data));
-	if (!main_window_is_on_workspace_screen (self->priv->_active_window, screen, workspace)) {
+	_tmp2_ = unique_message_data_get_workspace (data);
+	workspace = _tmp2_;
+	_tmp3_ = unique_message_data_get_screen (data);
+	_tmp4_ = _g_object_ref0 (_tmp3_);
+	screen = _tmp4_;
+	_tmp5_ = main_window_is_on_workspace_screen (self->priv->_active_window, screen, workspace);
+	if (!_tmp5_) {
 		gboolean found;
 		found = FALSE;
 		{
@@ -394,14 +443,18 @@ UniqueResponse application_message (Application* self, UniqueApp* sender, gint c
 			GList* w_it;
 			w_collection = self->priv->_windows;
 			for (w_it = w_collection; w_it != NULL; w_it = w_it->next) {
+				MainWindow* _tmp6_;
 				MainWindow* w;
-				w = _g_object_ref0 ((MainWindow*) w_it->data);
+				_tmp6_ = _g_object_ref0 ((MainWindow*) w_it->data);
+				w = _tmp6_;
 				{
+					gboolean _tmp7_;
 					if (w == self->priv->_active_window) {
 						_g_object_unref0 (w);
 						continue;
 					}
-					if (main_window_is_on_workspace_screen (w, screen, workspace)) {
+					_tmp7_ = main_window_is_on_workspace_screen (w, screen, workspace);
+					if (_tmp7_) {
 						found = TRUE;
 						application_set_active_window (self, w);
 						_g_object_unref0 (w);
@@ -412,19 +465,25 @@ UniqueResponse application_message (Application* self, UniqueApp* sender, gint c
 			}
 		}
 		if (!found) {
-			MainWindow* _tmp1_;
-			_tmp1_ = application_create_window (self, screen);
-			_g_object_unref0 (_tmp1_);
+			MainWindow* _tmp8_ = NULL;
+			MainWindow* _tmp9_;
+			_tmp8_ = application_create_window (self, screen);
+			_tmp9_ = _tmp8_;
+			_g_object_unref0 (_tmp9_);
 		}
 	}
 	if (command == UNIQUE_NEW) {
 		application_create_document (self);
 	} else {
 		if (command == UNIQUE_OPEN) {
-			char** _tmp2_;
-			gint _tmp2__length1;
-			application_open_documents (self, (_tmp2_ = unique_message_data_get_uris (data), _tmp2__length1 = -1, _tmp2_));
-			_tmp2_ = (_vala_array_free (_tmp2_, _tmp2__length1, (GDestroyNotify) g_free), NULL);
+			gchar** _tmp10_ = NULL;
+			gchar** _tmp11_;
+			gint _tmp11__length1;
+			_tmp10_ = unique_message_data_get_uris (data);
+			_tmp11_ = _tmp10_;
+			_tmp11__length1 = -1;
+			application_open_documents (self, _tmp11_);
+			_tmp11_ = (_vala_array_free (_tmp11_, _tmp11__length1, (GDestroyNotify) g_free), NULL);
 		}
 	}
 	gtk_window_present_with_time ((GtkWindow*) self->priv->_active_window, (guint32) time);
@@ -434,18 +493,40 @@ UniqueResponse application_message (Application* self, UniqueApp* sender, gint c
 }
 
 
-static void _lambda61_ (Block19Data* _data19_) {
+static Block19Data* block19_data_ref (Block19Data* _data19_) {
+	g_atomic_int_inc (&_data19_->_ref_count_);
+	return _data19_;
+}
+
+
+static void block19_data_unref (Block19Data* _data19_) {
+	if (g_atomic_int_dec_and_test (&_data19_->_ref_count_)) {
+		_g_object_unref0 (_data19_->self);
+		_g_object_unref0 (_data19_->window);
+		g_slice_free (Block19Data, _data19_);
+	}
+}
+
+
+static void _lambda64_ (Block19Data* _data19_) {
 	Application * self;
+	guint _tmp0_;
 	self = _data19_->self;
 	self->priv->_windows = g_list_remove (self->priv->_windows, _data19_->window);
-	if (g_list_length (self->priv->_windows) == 0) {
+	_tmp0_ = g_list_length (self->priv->_windows);
+	if (_tmp0_ == 0) {
+		AppSettings* _tmp1_ = NULL;
 		AppSettings* app_settings;
-		Projects* _tmp0_;
-		app_settings = app_settings_get_default ();
+		Projects* _tmp2_ = NULL;
+		Projects* _tmp3_;
+		_tmp1_ = app_settings_get_default ();
+		app_settings = _tmp1_;
 		app_settings_save_build_tools (app_settings);
 		app_settings_save_most_used_symbols (app_settings);
-		projects_save (_tmp0_ = projects_get_default ());
-		_projects_unref0 (_tmp0_);
+		_tmp2_ = projects_get_default ();
+		_tmp3_ = _tmp2_;
+		projects_save (_tmp3_);
+		_projects_unref0 (_tmp3_);
 		gtk_main_quit ();
 		_g_object_unref0 (app_settings);
 	} else {
@@ -457,12 +538,12 @@ static void _lambda61_ (Block19Data* _data19_) {
 }
 
 
-static void __lambda61__gtk_object_destroy (GtkObject* _sender, gpointer self) {
-	_lambda61_ (self);
+static void __lambda64__gtk_object_destroy (GtkObject* _sender, gpointer self) {
+	_lambda64_ (self);
 }
 
 
-static gboolean _lambda62_ (Block19Data* _data19_) {
+static gboolean _lambda65_ (Block19Data* _data19_) {
 	Application * self;
 	gboolean result = FALSE;
 	self = _data19_->self;
@@ -473,31 +554,19 @@ static gboolean _lambda62_ (Block19Data* _data19_) {
 }
 
 
-static gboolean __lambda62__gtk_widget_focus_in_event (GtkWidget* _sender, GdkEventFocus* event, gpointer self) {
+static gboolean __lambda65__gtk_widget_focus_in_event (GtkWidget* _sender, GdkEventFocus* event, gpointer self) {
 	gboolean result;
-	result = _lambda62_ (self);
+	result = _lambda65_ (self);
 	return result;
 }
 
 
-static Block19Data* block19_data_ref (Block19Data* _data19_) {
-	g_atomic_int_inc (&_data19_->_ref_count_);
-	return _data19_;
-}
-
-
-static void block19_data_unref (Block19Data* _data19_) {
-	if (g_atomic_int_dec_and_test (&_data19_->_ref_count_)) {
-		_g_object_unref0 (_data19_->self);
-		_g_object_unref0 (_data19_->window);
-		g_slice_free (Block19Data, _data19_);
-	}
-}
-
-
 MainWindow* application_create_window (Application* self, GdkScreen* screen) {
 	MainWindow* result = NULL;
 	Block19Data* _data19_;
+	MainWindow* _tmp0_ = NULL;
+	MainWindow* _tmp1_;
+	MainWindow* _tmp2_;
 	g_return_val_if_fail (self != NULL, NULL);
 	_data19_ = g_slice_new0 (Block19Data);
 	_data19_->_ref_count_ = 1;
@@ -505,59 +574,65 @@ MainWindow* application_create_window (Application* self, GdkScreen* screen) {
 	if (self->priv->_active_window != NULL) {
 		main_window_save_state (self->priv->_active_window, TRUE);
 	}
-	_data19_->window = g_object_ref_sink (main_window_new ());
+	_tmp0_ = main_window_new ();
+	_data19_->window = g_object_ref_sink (_tmp0_);
 	application_set_active_window (self, _data19_->window);
 	g_object_notify ((GObject*) self, "active-window");
 	if (screen != NULL) {
 		gtk_window_set_screen ((GtkWindow*) _data19_->window, screen);
 	}
-	g_signal_connect_data ((GtkObject*) _data19_->window, "destroy", (GCallback) __lambda61__gtk_object_destroy, block19_data_ref (_data19_), (GClosureNotify) block19_data_unref, 0);
-	g_signal_connect_data ((GtkWidget*) _data19_->window, "focus-in-event", (GCallback) __lambda62__gtk_widget_focus_in_event, block19_data_ref (_data19_), (GClosureNotify) block19_data_unref, 0);
-	self->priv->_windows = g_list_append (self->priv->_windows, _g_object_ref0 (_data19_->window));
+	g_signal_connect_data ((GtkObject*) _data19_->window, "destroy", (GCallback) __lambda64__gtk_object_destroy, block19_data_ref (_data19_), (GClosureNotify) block19_data_unref, 0);
+	g_signal_connect_data ((GtkWidget*) _data19_->window, "focus-in-event", (GCallback) __lambda65__gtk_widget_focus_in_event, block19_data_ref (_data19_), (GClosureNotify) block19_data_unref, 0);
+	_tmp1_ = _g_object_ref0 (_data19_->window);
+	self->priv->_windows = g_list_append (self->priv->_windows, _tmp1_);
 	gtk_widget_show ((GtkWidget*) _data19_->window);
-	result = _g_object_ref0 (_data19_->window);
+	_tmp2_ = _g_object_ref0 (_data19_->window);
+	result = _tmp2_;
 	block19_data_unref (_data19_);
+	_data19_ = NULL;
 	return result;
 }
 
 
 void application_create_document (Application* self) {
-	DocumentTab* _tmp0_;
+	DocumentTab* _tmp0_ = NULL;
+	DocumentTab* _tmp1_;
 	g_return_if_fail (self != NULL);
 	_tmp0_ = main_window_create_tab (self->priv->_active_window, TRUE);
-	_g_object_unref0 (_tmp0_);
+	_tmp1_ = _tmp0_;
+	_g_object_unref0 (_tmp1_);
 }
 
 
-static glong string_get_length (const char* self) {
-	glong result;
-	g_return_val_if_fail (self != NULL, 0L);
-	result = g_utf8_strlen (self, (gssize) (-1));
-	return result;
-}
-
-
-void application_open_documents (Application* self, char** uris) {
+void application_open_documents (Application* self, gchar** uris) {
 	g_return_if_fail (self != NULL);
 	{
-		char** uri_collection;
+		gchar** uri_collection;
 		int uri_collection_length1;
 		int uri_it;
 		uri_collection = uris;
 		uri_collection_length1 = _vala_array_length (uris);
 		for (uri_it = 0; uri_it < _vala_array_length (uris); uri_it = uri_it + 1) {
-			char* uri;
-			uri = g_strdup (uri_collection[uri_it]);
+			gchar* _tmp0_;
+			gchar* uri;
+			_tmp0_ = g_strdup (uri_collection[uri_it]);
+			uri = _tmp0_;
 			{
+				gint _tmp1_;
+				GFile* _tmp2_ = NULL;
 				GFile* location;
-				DocumentTab* _tmp0_;
-				if (string_get_length (uri) == 0) {
+				DocumentTab* _tmp3_ = NULL;
+				DocumentTab* _tmp4_;
+				_tmp1_ = strlen (uri);
+				if (_tmp1_ == 0) {
 					_g_free0 (uri);
 					continue;
 				}
-				location = g_file_new_for_uri (uri);
-				_tmp0_ = main_window_open_document (self->priv->_active_window, location);
-				_g_object_unref0 (_tmp0_);
+				_tmp2_ = g_file_new_for_uri (uri);
+				location = _tmp2_;
+				_tmp3_ = main_window_open_document (self->priv->_active_window, location);
+				_tmp4_ = _tmp3_;
+				_g_object_unref0 (_tmp4_);
 				_g_object_unref0 (location);
 				_g_free0 (uri);
 			}
@@ -567,9 +642,11 @@ void application_open_documents (Application* self, char** uris) {
 
 
 static void application_register_my_stock_icons (Application* self) {
+	GtkIconFactory* _tmp0_ = NULL;
 	GtkIconFactory* icon_factory;
 	g_return_if_fail (self != NULL);
-	icon_factory = gtk_icon_factory_new ();
+	_tmp0_ = gtk_icon_factory_new ();
+	icon_factory = _tmp0_;
 	{
 		ApplicationStockIcon* icon_collection;
 		int icon_collection_length1;
@@ -577,14 +654,21 @@ static void application_register_my_stock_icons (Application* self) {
 		icon_collection = APPLICATION_stock_icons;
 		icon_collection_length1 = G_N_ELEMENTS (APPLICATION_stock_icons);
 		for (icon_it = 0; icon_it < G_N_ELEMENTS (APPLICATION_stock_icons); icon_it = icon_it + 1) {
-			ApplicationStockIcon _tmp0_ = {0};
+			ApplicationStockIcon _tmp1_;
+			ApplicationStockIcon _tmp2_ = {0};
 			ApplicationStockIcon icon;
-			icon = (application_stock_icon_copy (&icon_collection[icon_it], &_tmp0_), _tmp0_);
+			application_stock_icon_copy (&icon_collection[icon_it], &_tmp2_);
+			_tmp1_ = _tmp2_;
+			icon = _tmp1_;
 			{
+				GtkIconSet* _tmp3_ = NULL;
 				GtkIconSet* icon_set;
+				GtkIconSource* _tmp4_ = NULL;
 				GtkIconSource* icon_source;
-				icon_set = gtk_icon_set_new ();
-				icon_source = gtk_icon_source_new ();
+				_tmp3_ = gtk_icon_set_new ();
+				icon_set = _tmp3_;
+				_tmp4_ = gtk_icon_source_new ();
+				icon_source = _tmp4_;
 				gtk_icon_source_set_filename (icon_source, icon.filename);
 				gtk_icon_set_add_source (icon_set, icon_source);
 				gtk_icon_factory_add (icon_factory, icon.stock_id, icon_set);
@@ -625,7 +709,9 @@ MainWindow* application_get_active_window (Application* self) {
 static void application_set_active_window (Application* self, MainWindow* value) {
 	MainWindow* _tmp0_;
 	g_return_if_fail (self != NULL);
-	self->priv->_active_window = (_tmp0_ = _g_object_ref0 (value), _g_object_unref0 (self->priv->_active_window), _tmp0_);
+	_tmp0_ = _g_object_ref0 (value);
+	_g_object_unref0 (self->priv->_active_window);
+	self->priv->_active_window = _tmp0_;
 	g_object_notify ((GObject *) self, "active-window");
 }
 
@@ -637,8 +723,8 @@ static void application_stock_icon_copy (const ApplicationStockIcon* self, Appli
 
 
 static void application_stock_icon_destroy (ApplicationStockIcon* self) {
-	_g_free0 (self->filename);
-	_g_free0 (self->stock_id);
+	_g_free0 ((*self).filename);
+	_g_free0 ((*self).stock_id);
 }
 
 
@@ -670,8 +756,8 @@ static GType application_stock_icon_get_type (void) {
 static void application_class_init (ApplicationClass * klass) {
 	application_parent_class = g_type_class_peek_parent (klass);
 	g_type_class_add_private (klass, sizeof (ApplicationPrivate));
-	G_OBJECT_CLASS (klass)->get_property = application_get_property;
-	G_OBJECT_CLASS (klass)->set_property = application_set_property;
+	G_OBJECT_CLASS (klass)->get_property = _vala_application_get_property;
+	G_OBJECT_CLASS (klass)->set_property = _vala_application_set_property;
 	G_OBJECT_CLASS (klass)->finalize = application_finalize;
 	g_object_class_install_property (G_OBJECT_CLASS (klass), APPLICATION_WINDOWS, g_param_spec_pointer ("windows", "windows", "windows", G_PARAM_STATIC_NAME | G_PARAM_STATIC_NICK | G_PARAM_STATIC_BLURB | G_PARAM_READABLE));
 	g_object_class_install_property (G_OBJECT_CLASS (klass), APPLICATION_ACTIVE_WINDOW, g_param_spec_object ("active-window", "active-window", "active-window", TYPE_MAIN_WINDOW, G_PARAM_STATIC_NAME | G_PARAM_STATIC_NICK | G_PARAM_STATIC_BLURB | G_PARAM_READABLE));
@@ -703,7 +789,7 @@ GType application_get_type (void) {
 }
 
 
-static void application_get_property (GObject * object, guint property_id, GValue * value, GParamSpec * pspec) {
+static void _vala_application_get_property (GObject * object, guint property_id, GValue * value, GParamSpec * pspec) {
 	Application * self;
 	self = APPLICATION (object);
 	switch (property_id) {
@@ -720,7 +806,7 @@ static void application_get_property (GObject * object, guint property_id, GValu
 }
 
 
-static void application_set_property (GObject * object, guint property_id, const GValue * value, GParamSpec * pspec) {
+static void _vala_application_set_property (GObject * object, guint property_id, const GValue * value, GParamSpec * pspec) {
 	Application * self;
 	self = APPLICATION (object);
 	switch (property_id) {
@@ -768,4 +854,3 @@ static gint _vala_array_length (gpointer array) {
 
 
 
-
diff --git a/src/C/build_tool_dialog.c b/src/C/build_tool_dialog.c
index 81379d7..7f8a3bc 100644
--- a/src/C/build_tool_dialog.c
+++ b/src/C/build_tool_dialog.c
@@ -1,4 +1,4 @@
-/* build_tool_dialog.c generated by valac 0.10.3, the Vala compiler
+/* build_tool_dialog.c generated by valac 0.12.1, the Vala compiler
  * generated from build_tool_dialog.vala, do not modify */
 
 /*
@@ -99,31 +99,31 @@ typedef enum  {
 } BuildToolDialogJobColumn;
 
 struct _BuildToolDialogIconColumn {
-	char* stock_id;
-	char* label;
+	gchar* stock_id;
+	gchar* label;
 };
 
 struct _BuildJob {
 	gboolean must_succeed;
-	char* post_processor;
-	char* command;
-	char** command_args;
+	gchar* post_processor;
+	gchar* command;
+	gchar** command_args;
 	gint command_args_length1;
 };
 
 struct _BuildTool {
-	char* description;
-	char* extensions;
-	char* label;
-	char* icon;
+	gchar* description;
+	gchar* extensions;
+	gchar* label;
+	gchar* icon;
 	gboolean compilation;
 	GList* jobs;
 };
 
 
+static gpointer build_tool_dialog_parent_class = NULL;
 static BuildToolDialog* build_tool_dialog_instance;
 static BuildToolDialog* build_tool_dialog_instance = NULL;
-static gpointer build_tool_dialog_parent_class = NULL;
 
 GType build_tool_dialog_get_type (void) G_GNUC_CONST;
 #define BUILD_TOOL_DIALOG_GET_PRIVATE(o) (G_TYPE_INSTANCE_GET_PRIVATE ((o), TYPE_BUILD_TOOL_DIALOG, BuildToolDialogPrivate))
@@ -142,27 +142,27 @@ static void build_tool_dialog_init_icon_treeview (BuildToolDialog* self);
 static void build_tool_dialog_init_jobs_treeview (BuildToolDialog* self);
 static void build_tool_dialog_init_actions (BuildToolDialog* self);
 gboolean build_tool_dialog_show_me (GtkWindow* parent, gint num);
-static void _lambda101_ (void);
-static void __lambda101__gtk_object_destroy (GtkObject* _sender, gpointer self);
+static void _lambda104_ (void);
+static void __lambda104__gtk_object_destroy (GtkObject* _sender, gpointer self);
 static void build_tool_dialog_init (BuildToolDialog* self, gint num);
 static gboolean build_tool_dialog_run_me (BuildToolDialog* self, gint num);
-static void _lambda95_ (const char* path_string, const char* new_text, BuildToolDialog* self);
-static void __lambda95__gtk_cell_renderer_text_edited (GtkCellRendererText* _sender, const char* path, const char* new_text, gpointer self);
-static void _lambda96_ (const char* path_string, BuildToolDialog* self);
-static void __lambda96__gtk_cell_renderer_toggle_toggled (GtkCellRendererToggle* _sender, const char* path, gpointer self);
-static void _lambda97_ (const char* path_string, const char* new_text, BuildToolDialog* self);
-static void __lambda97__gtk_cell_renderer_text_edited (GtkCellRendererText* _sender, const char* path, const char* new_text, gpointer self);
+static void _lambda98_ (const gchar* path_string, const gchar* new_text, BuildToolDialog* self);
+static void __lambda98__gtk_cell_renderer_text_edited (GtkCellRendererText* _sender, const gchar* path, const gchar* new_text, gpointer self);
+static void _lambda99_ (const gchar* path_string, BuildToolDialog* self);
+static void __lambda99__gtk_cell_renderer_toggle_toggled (GtkCellRendererToggle* _sender, const gchar* path, gpointer self);
+static void _lambda100_ (const gchar* path_string, const gchar* new_text, BuildToolDialog* self);
+static void __lambda100__gtk_cell_renderer_text_edited (GtkCellRendererText* _sender, const gchar* path, const gchar* new_text, gpointer self);
 static void build_tool_dialog_on_command_add (BuildToolDialog* self);
 static void _build_tool_dialog_on_command_add_gtk_button_clicked (GtkButton* _sender, gpointer self);
 static void _build_tool_dialog_on_command_add_gtk_entry_activate (GtkEntry* _sender, gpointer self);
-static void _lambda98_ (BuildToolDialog* self);
+static void _lambda101_ (BuildToolDialog* self);
 gint utils_get_selected_row (GtkTreeView* view, GtkTreeIter* iter_to_set);
-static void __lambda98__gtk_button_clicked (GtkButton* _sender, gpointer self);
-static void _lambda99_ (BuildToolDialog* self);
+static void __lambda101__gtk_button_clicked (GtkButton* _sender, gpointer self);
+static void _lambda102_ (BuildToolDialog* self);
 gboolean utils_tree_model_iter_prev (GtkTreeModel* model, GtkTreeIter* iter);
-static void __lambda99__gtk_button_clicked (GtkButton* _sender, gpointer self);
-static void _lambda100_ (BuildToolDialog* self);
-static void __lambda100__gtk_button_clicked (GtkButton* _sender, gpointer self);
+static void __lambda102__gtk_button_clicked (GtkButton* _sender, gpointer self);
+static void _lambda103_ (BuildToolDialog* self);
+static void __lambda103__gtk_button_clicked (GtkButton* _sender, gpointer self);
 void utils_set_entry_error (GtkWidget* entry, gboolean _error_);
 static void build_tool_dialog_init_new_build_tool (BuildToolDialog* self);
 GType app_settings_get_type (void) G_GNUC_CONST;
@@ -184,10 +184,8 @@ void app_settings_update_build_tool (AppSettings* self, gint num, BuildTool* too
 static void build_tool_dialog_finalize (GObject* obj);
 static void _vala_array_destroy (gpointer array, gint array_length, GDestroyNotify destroy_func);
 static void _vala_array_free (gpointer array, gint array_length, GDestroyNotify destroy_func);
-static int _vala_strcmp0 (const char * str1, const char * str2);
-
-static const BuildToolDialogIconColumn BUILD_TOOL_DIALOG_icons[9] = {{GTK_STOCK_EXECUTE, N_ ("Execute")}, {"compile_dvi", "LaTeX â?? DVI"}, {"compile_pdf", "LaTeX â?? PDF"}, {"compile_ps", "LaTeX â?? PS"}, {GTK_STOCK_CONVERT, N_ ("Convert")}, {GTK_STOCK_FILE, N_ ("View File")}, {"view_dvi", N_ ("View DVI")}, {"view_pdf", N_ ("View PDF")}, {"view_ps", N_ ("View PS")}};
 
+static const BuildToolDialogIconColumn BUILD_TOOL_DIALOG_icons[9] = {{GTK_STOCK_EXECUTE, "Execute"}, {"compile_dvi", "LaTeX â?? DVI"}, {"compile_pdf", "LaTeX â?? PDF"}, {"compile_ps", "LaTeX â?? PS"}, {GTK_STOCK_CONVERT, "Convert"}, {GTK_STOCK_FILE, "View File"}, {"view_dvi", "View DVI"}, {"view_pdf", "View PDF"}, {"view_ps", "View PS"}};
 
 static GType build_tool_dialog_job_column_get_type (void) {
 	static volatile gsize build_tool_dialog_job_column_type_id__volatile = 0;
@@ -207,83 +205,141 @@ static gpointer _g_object_ref0 (gpointer self) {
 
 
 static BuildToolDialog* build_tool_dialog_construct (GType object_type) {
-	BuildToolDialog * self;
+	BuildToolDialog * self = NULL;
+	const gchar* _tmp0_ = NULL;
+	gchar* _tmp1_ = NULL;
+	gchar* path;
+	GtkBuilder* _tmp2_ = NULL;
+	GtkBuilder* builder;
+	GObject* _tmp3_ = NULL;
+	GtkVBox* _tmp4_;
+	GtkVBox* main_vbox;
+	GObject* _tmp5_ = NULL;
+	GtkEntry* _tmp6_;
+	GObject* _tmp7_ = NULL;
+	GtkEntry* _tmp8_;
+	GObject* _tmp9_ = NULL;
+	GtkEntry* _tmp10_;
+	GObject* _tmp11_ = NULL;
+	GtkComboBox* _tmp12_;
+	GObject* _tmp13_ = NULL;
+	GtkEntry* _tmp14_;
+	GObject* _tmp15_ = NULL;
+	GtkButton* _tmp16_;
+	GObject* _tmp17_ = NULL;
+	GtkTreeView* _tmp18_;
+	GObject* _tmp19_ = NULL;
+	GtkButton* _tmp20_;
+	GObject* _tmp21_ = NULL;
+	GtkButton* _tmp22_;
+	GObject* _tmp23_ = NULL;
+	GtkButton* _tmp24_;
+	GtkWidget* _tmp25_ = NULL;
+	GtkBox* _tmp26_;
+	GtkBox* content_area;
 	GError * _inner_error_ = NULL;
-	self = g_object_newv (object_type, 0, NULL);
+	self = (BuildToolDialog*) g_object_new (object_type, NULL);
 	gtk_dialog_add_button ((GtkDialog*) self, GTK_STOCK_CANCEL, (gint) GTK_RESPONSE_CANCEL);
 	gtk_dialog_add_button ((GtkDialog*) self, GTK_STOCK_OK, (gint) GTK_RESPONSE_OK);
-	gtk_window_set_title ((GtkWindow*) self, _ ("Build Tool"));
+	_tmp0_ = _ ("Build Tool");
+	gtk_window_set_title ((GtkWindow*) self, _tmp0_);
 	gtk_dialog_set_has_separator ((GtkDialog*) self, FALSE);
 	gtk_window_set_destroy_with_parent ((GtkWindow*) self, TRUE);
 	gtk_container_set_border_width ((GtkContainer*) self, (guint) 5);
-	{
-		char* path;
-		GtkBuilder* builder;
-		GtkVBox* main_vbox;
-		GtkEntry* _tmp0_;
-		GtkEntry* _tmp1_;
-		GtkEntry* _tmp2_;
-		GtkComboBox* _tmp3_;
-		GtkEntry* _tmp4_;
-		GtkButton* _tmp5_;
-		GtkTreeView* _tmp6_;
-		GtkButton* _tmp7_;
-		GtkButton* _tmp8_;
-		GtkButton* _tmp9_;
-		GtkBox* content_area;
-		path = g_build_filename (DATA_DIR, "ui", "build_tool.ui", NULL);
-		builder = gtk_builder_new ();
-		gtk_builder_add_from_file (builder, path, &_inner_error_);
-		if (_inner_error_ != NULL) {
-			_g_object_unref0 (builder);
-			_g_free0 (path);
-			goto __catch43_g_error;
-		}
-		main_vbox = _g_object_ref0 (GTK_VBOX (gtk_builder_get_object (builder, "main_vbox")));
-		gtk_widget_unparent ((GtkWidget*) main_vbox);
-		self->priv->entry_label = (_tmp0_ = _g_object_ref0 (GTK_ENTRY (gtk_builder_get_object (builder, "entry_label"))), _g_object_unref0 (self->priv->entry_label), _tmp0_);
-		self->priv->entry_desc = (_tmp1_ = _g_object_ref0 (GTK_ENTRY (gtk_builder_get_object (builder, "entry_desc"))), _g_object_unref0 (self->priv->entry_desc), _tmp1_);
-		self->priv->entry_extensions = (_tmp2_ = _g_object_ref0 (GTK_ENTRY (gtk_builder_get_object (builder, "entry_extensions"))), _g_object_unref0 (self->priv->entry_extensions), _tmp2_);
-		self->priv->combobox_icon = (_tmp3_ = _g_object_ref0 (GTK_COMBO_BOX (gtk_builder_get_object (builder, "combobox_icon"))), _g_object_unref0 (self->priv->combobox_icon), _tmp3_);
-		self->priv->entry_command = (_tmp4_ = _g_object_ref0 (GTK_ENTRY (gtk_builder_get_object (builder, "entry_command"))), _g_object_unref0 (self->priv->entry_command), _tmp4_);
-		self->priv->button_add = (_tmp5_ = _g_object_ref0 (GTK_BUTTON (gtk_builder_get_object (builder, "button_add"))), _g_object_unref0 (self->priv->button_add), _tmp5_);
-		self->priv->treeview_jobs = (_tmp6_ = _g_object_ref0 (GTK_TREE_VIEW (gtk_builder_get_object (builder, "treeview_jobs"))), _g_object_unref0 (self->priv->treeview_jobs), _tmp6_);
-		self->priv->button_delete = (_tmp7_ = _g_object_ref0 (GTK_BUTTON (gtk_builder_get_object (builder, "button_delete"))), _g_object_unref0 (self->priv->button_delete), _tmp7_);
-		self->priv->button_up = (_tmp8_ = _g_object_ref0 (GTK_BUTTON (gtk_builder_get_object (builder, "button_up"))), _g_object_unref0 (self->priv->button_up), _tmp8_);
-		self->priv->button_down = (_tmp9_ = _g_object_ref0 (GTK_BUTTON (gtk_builder_get_object (builder, "button_down"))), _g_object_unref0 (self->priv->button_down), _tmp9_);
-		content_area = _g_object_ref0 (GTK_BOX (gtk_dialog_get_content_area ((GtkDialog*) self)));
-		gtk_box_pack_start (content_area, (GtkWidget*) main_vbox, TRUE, TRUE, (guint) 0);
-		gtk_widget_show_all ((GtkWidget*) content_area);
-		build_tool_dialog_init_icon_treeview (self);
-		build_tool_dialog_init_jobs_treeview (self);
-		build_tool_dialog_init_actions (self);
-		_g_object_unref0 (content_area);
-		_g_object_unref0 (main_vbox);
+	_tmp1_ = g_build_filename (DATA_DIR, "ui", "build_tool.ui", NULL);
+	path = _tmp1_;
+	_tmp2_ = gtk_builder_new ();
+	builder = _tmp2_;
+	gtk_builder_add_from_file (builder, path, &_inner_error_);
+	if (_inner_error_ != NULL) {
 		_g_object_unref0 (builder);
 		_g_free0 (path);
+		goto __catch43_g_error;
 	}
+	_tmp3_ = gtk_builder_get_object (builder, "main_vbox");
+	_tmp4_ = _g_object_ref0 (GTK_VBOX (_tmp3_));
+	main_vbox = _tmp4_;
+	gtk_widget_unparent ((GtkWidget*) main_vbox);
+	_tmp5_ = gtk_builder_get_object (builder, "entry_label");
+	_tmp6_ = _g_object_ref0 (GTK_ENTRY (_tmp5_));
+	_g_object_unref0 (self->priv->entry_label);
+	self->priv->entry_label = _tmp6_;
+	_tmp7_ = gtk_builder_get_object (builder, "entry_desc");
+	_tmp8_ = _g_object_ref0 (GTK_ENTRY (_tmp7_));
+	_g_object_unref0 (self->priv->entry_desc);
+	self->priv->entry_desc = _tmp8_;
+	_tmp9_ = gtk_builder_get_object (builder, "entry_extensions");
+	_tmp10_ = _g_object_ref0 (GTK_ENTRY (_tmp9_));
+	_g_object_unref0 (self->priv->entry_extensions);
+	self->priv->entry_extensions = _tmp10_;
+	_tmp11_ = gtk_builder_get_object (builder, "combobox_icon");
+	_tmp12_ = _g_object_ref0 (GTK_COMBO_BOX (_tmp11_));
+	_g_object_unref0 (self->priv->combobox_icon);
+	self->priv->combobox_icon = _tmp12_;
+	_tmp13_ = gtk_builder_get_object (builder, "entry_command");
+	_tmp14_ = _g_object_ref0 (GTK_ENTRY (_tmp13_));
+	_g_object_unref0 (self->priv->entry_command);
+	self->priv->entry_command = _tmp14_;
+	_tmp15_ = gtk_builder_get_object (builder, "button_add");
+	_tmp16_ = _g_object_ref0 (GTK_BUTTON (_tmp15_));
+	_g_object_unref0 (self->priv->button_add);
+	self->priv->button_add = _tmp16_;
+	_tmp17_ = gtk_builder_get_object (builder, "treeview_jobs");
+	_tmp18_ = _g_object_ref0 (GTK_TREE_VIEW (_tmp17_));
+	_g_object_unref0 (self->priv->treeview_jobs);
+	self->priv->treeview_jobs = _tmp18_;
+	_tmp19_ = gtk_builder_get_object (builder, "button_delete");
+	_tmp20_ = _g_object_ref0 (GTK_BUTTON (_tmp19_));
+	_g_object_unref0 (self->priv->button_delete);
+	self->priv->button_delete = _tmp20_;
+	_tmp21_ = gtk_builder_get_object (builder, "button_up");
+	_tmp22_ = _g_object_ref0 (GTK_BUTTON (_tmp21_));
+	_g_object_unref0 (self->priv->button_up);
+	self->priv->button_up = _tmp22_;
+	_tmp23_ = gtk_builder_get_object (builder, "button_down");
+	_tmp24_ = _g_object_ref0 (GTK_BUTTON (_tmp23_));
+	_g_object_unref0 (self->priv->button_down);
+	self->priv->button_down = _tmp24_;
+	_tmp25_ = gtk_dialog_get_content_area ((GtkDialog*) self);
+	_tmp26_ = _g_object_ref0 (GTK_BOX (_tmp25_));
+	content_area = _tmp26_;
+	gtk_box_pack_start (content_area, (GtkWidget*) main_vbox, TRUE, TRUE, (guint) 0);
+	gtk_widget_show_all ((GtkWidget*) content_area);
+	build_tool_dialog_init_icon_treeview (self);
+	build_tool_dialog_init_jobs_treeview (self);
+	build_tool_dialog_init_actions (self);
+	_g_object_unref0 (content_area);
+	_g_object_unref0 (main_vbox);
+	_g_object_unref0 (builder);
+	_g_free0 (path);
 	goto __finally43;
 	__catch43_g_error:
 	{
 		GError * e;
+		gchar* _tmp27_ = NULL;
+		gchar* message;
+		GtkLabel* _tmp28_ = NULL;
+		GtkLabel* label_error;
+		GtkWidget* _tmp29_ = NULL;
+		GtkBox* _tmp30_;
+		GtkBox* content_area;
 		e = _inner_error_;
 		_inner_error_ = NULL;
-		{
-			char* message;
-			GtkLabel* label_error;
-			GtkBox* content_area;
-			message = g_strdup_printf ("Error: %s", e->message);
-			fprintf (stderr, "%s\n", message);
-			label_error = g_object_ref_sink ((GtkLabel*) gtk_label_new (message));
-			gtk_label_set_line_wrap (label_error, TRUE);
-			content_area = _g_object_ref0 (GTK_BOX (gtk_dialog_get_content_area ((GtkDialog*) self)));
-			gtk_box_pack_start (content_area, (GtkWidget*) label_error, TRUE, TRUE, (guint) 0);
-			gtk_widget_show_all ((GtkWidget*) content_area);
-			_g_object_unref0 (content_area);
-			_g_object_unref0 (label_error);
-			_g_free0 (message);
-			_g_error_free0 (e);
-		}
+		_tmp27_ = g_strdup_printf ("Error: %s", e->message);
+		message = _tmp27_;
+		fprintf (stderr, "%s\n", message);
+		_tmp28_ = (GtkLabel*) gtk_label_new (message);
+		label_error = g_object_ref_sink (_tmp28_);
+		gtk_label_set_line_wrap (label_error, TRUE);
+		_tmp29_ = gtk_dialog_get_content_area ((GtkDialog*) self);
+		_tmp30_ = _g_object_ref0 (GTK_BOX (_tmp29_));
+		content_area = _tmp30_;
+		gtk_box_pack_start (content_area, (GtkWidget*) label_error, TRUE, TRUE, (guint) 0);
+		gtk_widget_show_all ((GtkWidget*) content_area);
+		_g_object_unref0 (content_area);
+		_g_object_unref0 (label_error);
+		_g_free0 (message);
+		_g_error_free0 (e);
 	}
 	__finally43:
 	if (_inner_error_ != NULL) {
@@ -300,43 +356,53 @@ static BuildToolDialog* build_tool_dialog_new (void) {
 }
 
 
-static void _lambda101_ (void) {
+static void _lambda104_ (void) {
 	if (build_tool_dialog_instance != NULL) {
-		BuildToolDialog* _tmp0_;
-		build_tool_dialog_instance = (_tmp0_ = NULL, _g_object_unref0 (build_tool_dialog_instance), _tmp0_);
+		_g_object_unref0 (build_tool_dialog_instance);
+		build_tool_dialog_instance = NULL;
 	}
 }
 
 
-static void __lambda101__gtk_object_destroy (GtkObject* _sender, gpointer self) {
-	_lambda101_ ();
+static void __lambda104__gtk_object_destroy (GtkObject* _sender, gpointer self) {
+	_lambda104_ ();
 }
 
 
 gboolean build_tool_dialog_show_me (GtkWindow* parent, gint num) {
 	gboolean result = FALSE;
+	GtkWindow* _tmp1_ = NULL;
+	gboolean _tmp2_;
 	g_return_val_if_fail (parent != NULL, FALSE);
 	if (build_tool_dialog_instance == NULL) {
-		BuildToolDialog* _tmp0_;
-		build_tool_dialog_instance = (_tmp0_ = g_object_ref_sink (build_tool_dialog_new ()), _g_object_unref0 (build_tool_dialog_instance), _tmp0_);
-		g_signal_connect ((GtkObject*) build_tool_dialog_instance, "destroy", (GCallback) __lambda101__gtk_object_destroy, NULL);
+		BuildToolDialog* _tmp0_ = NULL;
+		_tmp0_ = build_tool_dialog_new ();
+		_g_object_unref0 (build_tool_dialog_instance);
+		build_tool_dialog_instance = g_object_ref_sink (_tmp0_);
+		g_signal_connect ((GtkObject*) build_tool_dialog_instance, "destroy", (GCallback) __lambda104__gtk_object_destroy, NULL);
 	}
-	if (parent != gtk_window_get_transient_for ((GtkWindow*) build_tool_dialog_instance)) {
+	_tmp1_ = gtk_window_get_transient_for ((GtkWindow*) build_tool_dialog_instance);
+	if (parent != _tmp1_) {
 		gtk_window_set_transient_for ((GtkWindow*) build_tool_dialog_instance, parent);
 	}
 	gtk_window_present ((GtkWindow*) build_tool_dialog_instance);
 	build_tool_dialog_init (build_tool_dialog_instance, num);
-	result = build_tool_dialog_run_me (build_tool_dialog_instance, num);
+	_tmp2_ = build_tool_dialog_run_me (build_tool_dialog_instance, num);
+	result = _tmp2_;
 	return result;
 }
 
 
 static void build_tool_dialog_init_icon_treeview (BuildToolDialog* self) {
+	GtkListStore* _tmp0_ = NULL;
 	GtkListStore* icon_store;
+	GtkCellRendererPixbuf* _tmp5_ = NULL;
 	GtkCellRendererPixbuf* pixbuf_renderer;
+	GtkCellRendererText* _tmp6_ = NULL;
 	GtkCellRendererText* text_renderer;
 	g_return_if_fail (self != NULL);
-	icon_store = gtk_list_store_new (2, G_TYPE_STRING, G_TYPE_STRING);
+	_tmp0_ = gtk_list_store_new (2, G_TYPE_STRING, G_TYPE_STRING);
+	icon_store = _tmp0_;
 	{
 		BuildToolDialogIconColumn* icon_collection;
 		int icon_collection_length1;
@@ -344,22 +410,31 @@ static void build_tool_dialog_init_icon_treeview (BuildToolDialog* self) {
 		icon_collection = BUILD_TOOL_DIALOG_icons;
 		icon_collection_length1 = G_N_ELEMENTS (BUILD_TOOL_DIALOG_icons);
 		for (icon_it = 0; icon_it < G_N_ELEMENTS (BUILD_TOOL_DIALOG_icons); icon_it = icon_it + 1) {
-			BuildToolDialogIconColumn _tmp0_ = {0};
+			BuildToolDialogIconColumn _tmp1_;
+			BuildToolDialogIconColumn _tmp2_ = {0};
 			BuildToolDialogIconColumn icon;
-			icon = (build_tool_dialog_icon_column_copy (&icon_collection[icon_it], &_tmp0_), _tmp0_);
+			build_tool_dialog_icon_column_copy (&icon_collection[icon_it], &_tmp2_);
+			_tmp1_ = _tmp2_;
+			icon = _tmp1_;
 			{
 				GtkTreeIter iter = {0};
-				gtk_list_store_append (icon_store, &iter);
-				gtk_list_store_set (icon_store, &iter, 0, icon.stock_id, 1, _ (icon.label), -1, -1);
+				GtkTreeIter _tmp3_ = {0};
+				const gchar* _tmp4_ = NULL;
+				gtk_list_store_append (icon_store, &_tmp3_);
+				iter = _tmp3_;
+				_tmp4_ = _ (icon.label);
+				gtk_list_store_set (icon_store, &iter, 0, icon.stock_id, 1, _tmp4_, -1, -1);
 				build_tool_dialog_icon_column_destroy (&icon);
 			}
 		}
 	}
 	gtk_combo_box_set_model (self->priv->combobox_icon, (GtkTreeModel*) icon_store);
-	pixbuf_renderer = g_object_ref_sink ((GtkCellRendererPixbuf*) gtk_cell_renderer_pixbuf_new ());
+	_tmp5_ = (GtkCellRendererPixbuf*) gtk_cell_renderer_pixbuf_new ();
+	pixbuf_renderer = g_object_ref_sink (_tmp5_);
 	gtk_cell_layout_pack_start ((GtkCellLayout*) self->priv->combobox_icon, (GtkCellRenderer*) pixbuf_renderer, FALSE);
 	gtk_cell_layout_set_attributes ((GtkCellLayout*) self->priv->combobox_icon, (GtkCellRenderer*) pixbuf_renderer, "stock-id", 0, NULL, NULL);
-	text_renderer = g_object_ref_sink ((GtkCellRendererText*) gtk_cell_renderer_text_new ());
+	_tmp6_ = (GtkCellRendererText*) gtk_cell_renderer_text_new ();
+	text_renderer = g_object_ref_sink (_tmp6_);
 	gtk_cell_layout_pack_start ((GtkCellLayout*) self->priv->combobox_icon, (GtkCellRenderer*) text_renderer, TRUE);
 	gtk_cell_layout_set_attributes ((GtkCellLayout*) self->priv->combobox_icon, (GtkCellRenderer*) text_renderer, "text", 1, NULL, NULL);
 	_g_object_unref0 (text_renderer);
@@ -368,100 +443,139 @@ static void build_tool_dialog_init_icon_treeview (BuildToolDialog* self) {
 }
 
 
-static void _lambda95_ (const char* path_string, const char* new_text, BuildToolDialog* self) {
+static void _lambda98_ (const gchar* path_string, const gchar* new_text, BuildToolDialog* self) {
 	GtkTreeIter iter = {0};
+	GtkTreeIter _tmp0_ = {0};
 	g_return_if_fail (path_string != NULL);
 	g_return_if_fail (new_text != NULL);
-	gtk_tree_model_get_iter_from_string ((GtkTreeModel*) self->priv->jobs_store, &iter, path_string);
+	gtk_tree_model_get_iter_from_string ((GtkTreeModel*) self->priv->jobs_store, &_tmp0_, path_string);
+	iter = _tmp0_;
 	gtk_list_store_set (self->priv->jobs_store, &iter, BUILD_TOOL_DIALOG_JOB_COLUMN_COMMAND, new_text, -1, -1);
 }
 
 
-static void __lambda95__gtk_cell_renderer_text_edited (GtkCellRendererText* _sender, const char* path, const char* new_text, gpointer self) {
-	_lambda95_ (path, new_text, self);
+static void __lambda98__gtk_cell_renderer_text_edited (GtkCellRendererText* _sender, const gchar* path, const gchar* new_text, gpointer self) {
+	_lambda98_ (path, new_text, self);
 }
 
 
-static void _lambda96_ (const char* path_string, BuildToolDialog* self) {
+static void _lambda99_ (const gchar* path_string, BuildToolDialog* self) {
 	GtkTreeIter iter = {0};
+	GtkTreeIter _tmp0_ = {0};
 	gboolean val = FALSE;
+	GtkTreeModel* _tmp1_;
 	GtkTreeModel* model;
 	g_return_if_fail (path_string != NULL);
-	gtk_tree_model_get_iter_from_string ((GtkTreeModel*) self->priv->jobs_store, &iter, path_string);
-	model = _g_object_ref0 (GTK_TREE_MODEL (self->priv->jobs_store));
+	gtk_tree_model_get_iter_from_string ((GtkTreeModel*) self->priv->jobs_store, &_tmp0_, path_string);
+	iter = _tmp0_;
+	_tmp1_ = _g_object_ref0 (GTK_TREE_MODEL (self->priv->jobs_store));
+	model = _tmp1_;
 	gtk_tree_model_get (model, &iter, BUILD_TOOL_DIALOG_JOB_COLUMN_MUST_SUCCEED, &val, -1, -1);
 	gtk_list_store_set (self->priv->jobs_store, &iter, BUILD_TOOL_DIALOG_JOB_COLUMN_MUST_SUCCEED, !val, -1, -1);
 	_g_object_unref0 (model);
 }
 
 
-static void __lambda96__gtk_cell_renderer_toggle_toggled (GtkCellRendererToggle* _sender, const char* path, gpointer self) {
-	_lambda96_ (path, self);
+static void __lambda99__gtk_cell_renderer_toggle_toggled (GtkCellRendererToggle* _sender, const gchar* path, gpointer self) {
+	_lambda99_ (path, self);
 }
 
 
-static void _lambda97_ (const char* path_string, const char* new_text, BuildToolDialog* self) {
+static void _lambda100_ (const gchar* path_string, const gchar* new_text, BuildToolDialog* self) {
 	GtkTreeIter iter = {0};
+	GtkTreeIter _tmp0_ = {0};
 	g_return_if_fail (path_string != NULL);
 	g_return_if_fail (new_text != NULL);
-	gtk_tree_model_get_iter_from_string ((GtkTreeModel*) self->priv->jobs_store, &iter, path_string);
+	gtk_tree_model_get_iter_from_string ((GtkTreeModel*) self->priv->jobs_store, &_tmp0_, path_string);
+	iter = _tmp0_;
 	gtk_list_store_set (self->priv->jobs_store, &iter, BUILD_TOOL_DIALOG_JOB_COLUMN_POST_PROCESSOR, new_text, -1, -1);
 }
 
 
-static void __lambda97__gtk_cell_renderer_text_edited (GtkCellRendererText* _sender, const char* path, const char* new_text, gpointer self) {
-	_lambda97_ (path, new_text, self);
+static void __lambda100__gtk_cell_renderer_text_edited (GtkCellRendererText* _sender, const gchar* path, const gchar* new_text, gpointer self) {
+	_lambda100_ (path, new_text, self);
 }
 
 
 static void build_tool_dialog_init_jobs_treeview (BuildToolDialog* self) {
-	GtkListStore* _tmp0_;
+	GtkListStore* _tmp0_ = NULL;
+	GtkListStore* _tmp1_ = NULL;
 	GtkListStore* post_processor_store;
+	gchar* _tmp2_;
+	gchar* _tmp3_;
+	gchar* _tmp4_;
+	gchar** _tmp5_ = NULL;
+	gchar** post_processors;
 	gint post_processors_length1;
 	gint _post_processors_size_;
-	char** _tmp2_;
-	char** _tmp1_ = NULL;
-	char** post_processors;
+	GtkCellRendererText* _tmp8_ = NULL;
 	GtkCellRendererText* text_renderer;
+	const gchar* _tmp9_ = NULL;
+	GtkCellRendererToggle* _tmp10_ = NULL;
 	GtkCellRendererToggle* toggle_renderer;
+	const gchar* _tmp11_ = NULL;
+	GtkCellRendererCombo* _tmp12_ = NULL;
 	GtkCellRendererCombo* combo_renderer;
+	const gchar* _tmp13_ = NULL;
 	g_return_if_fail (self != NULL);
-	self->priv->jobs_store = (_tmp0_ = gtk_list_store_new ((gint) BUILD_TOOL_DIALOG_JOB_COLUMN_N_COLUMNS, G_TYPE_STRING, G_TYPE_BOOLEAN, G_TYPE_STRING), _g_object_unref0 (self->priv->jobs_store), _tmp0_);
+	_tmp0_ = gtk_list_store_new ((gint) BUILD_TOOL_DIALOG_JOB_COLUMN_N_COLUMNS, G_TYPE_STRING, G_TYPE_BOOLEAN, G_TYPE_STRING);
+	_g_object_unref0 (self->priv->jobs_store);
+	self->priv->jobs_store = _tmp0_;
 	gtk_tree_view_set_model (self->priv->treeview_jobs, (GtkTreeModel*) self->priv->jobs_store);
-	post_processor_store = gtk_list_store_new (1, G_TYPE_STRING);
-	post_processors = (_tmp2_ = (_tmp1_ = g_new0 (char*, 3 + 1), _tmp1_[0] = g_strdup ("no-output"), _tmp1_[1] = g_strdup ("all-output"), _tmp1_[2] = g_strdup ("rubber"), _tmp1_), post_processors_length1 = 3, _post_processors_size_ = post_processors_length1, _tmp2_);
+	_tmp1_ = gtk_list_store_new (1, G_TYPE_STRING);
+	post_processor_store = _tmp1_;
+	_tmp2_ = g_strdup ("no-output");
+	_tmp3_ = g_strdup ("all-output");
+	_tmp4_ = g_strdup ("rubber");
+	_tmp5_ = g_new0 (gchar*, 3 + 1);
+	_tmp5_[0] = _tmp2_;
+	_tmp5_[1] = _tmp3_;
+	_tmp5_[2] = _tmp4_;
+	post_processors = _tmp5_;
+	post_processors_length1 = 3;
+	_post_processors_size_ = 3;
 	{
-		char** post_processor_collection;
+		gchar** post_processor_collection;
 		int post_processor_collection_length1;
 		int post_processor_it;
 		post_processor_collection = post_processors;
 		post_processor_collection_length1 = post_processors_length1;
 		for (post_processor_it = 0; post_processor_it < post_processors_length1; post_processor_it = post_processor_it + 1) {
-			char* post_processor;
-			post_processor = g_strdup (post_processor_collection[post_processor_it]);
+			gchar* _tmp6_;
+			gchar* post_processor;
+			_tmp6_ = g_strdup (post_processor_collection[post_processor_it]);
+			post_processor = _tmp6_;
 			{
 				GtkTreeIter iterpp = {0};
-				gtk_list_store_append (post_processor_store, &iterpp);
+				GtkTreeIter _tmp7_ = {0};
+				gtk_list_store_append (post_processor_store, &_tmp7_);
+				iterpp = _tmp7_;
 				gtk_list_store_set (post_processor_store, &iterpp, 0, post_processor, -1, -1);
 				_g_free0 (post_processor);
 			}
 		}
 	}
-	text_renderer = g_object_ref_sink ((GtkCellRendererText*) gtk_cell_renderer_text_new ());
+	_tmp8_ = (GtkCellRendererText*) gtk_cell_renderer_text_new ();
+	text_renderer = g_object_ref_sink (_tmp8_);
 	g_object_set (text_renderer, "editable", TRUE, NULL);
-	gtk_tree_view_insert_column_with_attributes (self->priv->treeview_jobs, -1, _ ("Commands"), (GtkCellRenderer*) text_renderer, "text", BUILD_TOOL_DIALOG_JOB_COLUMN_COMMAND, NULL, NULL);
-	toggle_renderer = g_object_ref_sink ((GtkCellRendererToggle*) gtk_cell_renderer_toggle_new ());
+	_tmp9_ = _ ("Commands");
+	gtk_tree_view_insert_column_with_attributes (self->priv->treeview_jobs, -1, _tmp9_, (GtkCellRenderer*) text_renderer, "text", BUILD_TOOL_DIALOG_JOB_COLUMN_COMMAND, NULL, NULL);
+	_tmp10_ = (GtkCellRendererToggle*) gtk_cell_renderer_toggle_new ();
+	toggle_renderer = g_object_ref_sink (_tmp10_);
 	gtk_cell_renderer_toggle_set_activatable (toggle_renderer, TRUE);
-	gtk_tree_view_insert_column_with_attributes (self->priv->treeview_jobs, -1, _ ("Must Succeed"), (GtkCellRenderer*) toggle_renderer, "active", BUILD_TOOL_DIALOG_JOB_COLUMN_MUST_SUCCEED, NULL, NULL);
-	combo_renderer = g_object_ref_sink ((GtkCellRendererCombo*) gtk_cell_renderer_combo_new ());
+	_tmp11_ = _ ("Must Succeed");
+	gtk_tree_view_insert_column_with_attributes (self->priv->treeview_jobs, -1, _tmp11_, (GtkCellRenderer*) toggle_renderer, "active", BUILD_TOOL_DIALOG_JOB_COLUMN_MUST_SUCCEED, NULL, NULL);
+	_tmp12_ = (GtkCellRendererCombo*) gtk_cell_renderer_combo_new ();
+	combo_renderer = g_object_ref_sink (_tmp12_);
 	g_object_set ((GtkCellRendererText*) combo_renderer, "editable", TRUE, NULL);
 	g_object_set (combo_renderer, "model", (GtkTreeModel*) post_processor_store, NULL);
 	g_object_set (combo_renderer, "text-column", 0, NULL);
 	g_object_set (combo_renderer, "has-entry", FALSE, NULL);
-	gtk_tree_view_insert_column_with_attributes (self->priv->treeview_jobs, -1, _ ("Post Processor"), (GtkCellRenderer*) combo_renderer, "text", BUILD_TOOL_DIALOG_JOB_COLUMN_POST_PROCESSOR, NULL, NULL);
-	g_signal_connect_object (text_renderer, "edited", (GCallback) __lambda95__gtk_cell_renderer_text_edited, self, 0);
-	g_signal_connect_object (toggle_renderer, "toggled", (GCallback) __lambda96__gtk_cell_renderer_toggle_toggled, self, 0);
-	g_signal_connect_object ((GtkCellRendererText*) combo_renderer, "edited", (GCallback) __lambda97__gtk_cell_renderer_text_edited, self, 0);
+	_tmp13_ = _ ("Post Processor");
+	gtk_tree_view_insert_column_with_attributes (self->priv->treeview_jobs, -1, _tmp13_, (GtkCellRenderer*) combo_renderer, "text", BUILD_TOOL_DIALOG_JOB_COLUMN_POST_PROCESSOR, NULL, NULL);
+	g_signal_connect_object (text_renderer, "edited", (GCallback) __lambda98__gtk_cell_renderer_text_edited, self, 0);
+	g_signal_connect_object (toggle_renderer, "toggled", (GCallback) __lambda99__gtk_cell_renderer_toggle_toggled, self, 0);
+	g_signal_connect_object ((GtkCellRendererText*) combo_renderer, "edited", (GCallback) __lambda100__gtk_cell_renderer_text_edited, self, 0);
 	_g_object_unref0 (combo_renderer);
 	_g_object_unref0 (toggle_renderer);
 	_g_object_unref0 (text_renderer);
@@ -480,62 +594,78 @@ static void _build_tool_dialog_on_command_add_gtk_entry_activate (GtkEntry* _sen
 }
 
 
-static void _lambda98_ (BuildToolDialog* self) {
+static void _lambda101_ (BuildToolDialog* self) {
 	GtkTreeIter iter = {0};
+	GtkTreeIter _tmp0_ = {0};
+	gint _tmp1_;
 	gint i;
-	i = utils_get_selected_row (self->priv->treeview_jobs, &iter);
+	_tmp1_ = utils_get_selected_row (self->priv->treeview_jobs, &_tmp0_);
+	iter = _tmp0_;
+	i = _tmp1_;
 	if (i != (-1)) {
 		gtk_list_store_remove (self->priv->jobs_store, &iter);
 	}
 }
 
 
-static void __lambda98__gtk_button_clicked (GtkButton* _sender, gpointer self) {
-	_lambda98_ (self);
+static void __lambda101__gtk_button_clicked (GtkButton* _sender, gpointer self) {
+	_lambda101_ (self);
 }
 
 
-static void _lambda99_ (BuildToolDialog* self) {
+static void _lambda102_ (BuildToolDialog* self) {
 	GtkTreeIter iter1 = {0};
 	GtkTreeIter iter2 = {0};
+	GtkTreeIter _tmp0_ = {0};
+	gint _tmp1_;
 	gint i;
-	gboolean _tmp0_ = FALSE;
-	i = utils_get_selected_row (self->priv->treeview_jobs, &iter1);
+	gboolean _tmp2_ = FALSE;
+	_tmp1_ = utils_get_selected_row (self->priv->treeview_jobs, &_tmp0_);
+	iter1 = _tmp0_;
+	i = _tmp1_;
 	if (i != (-1)) {
-		_tmp0_ = i > 0;
+		_tmp2_ = i > 0;
 	} else {
-		_tmp0_ = FALSE;
+		_tmp2_ = FALSE;
 	}
-	if (_tmp0_) {
+	if (_tmp2_) {
+		gboolean _tmp3_;
 		iter2 = iter1;
-		if (utils_tree_model_iter_prev ((GtkTreeModel*) self->priv->jobs_store, &iter2)) {
+		_tmp3_ = utils_tree_model_iter_prev ((GtkTreeModel*) self->priv->jobs_store, &iter2);
+		if (_tmp3_) {
 			gtk_list_store_swap (self->priv->jobs_store, &iter1, &iter2);
 		}
 	}
 }
 
 
-static void __lambda99__gtk_button_clicked (GtkButton* _sender, gpointer self) {
-	_lambda99_ (self);
+static void __lambda102__gtk_button_clicked (GtkButton* _sender, gpointer self) {
+	_lambda102_ (self);
 }
 
 
-static void _lambda100_ (BuildToolDialog* self) {
+static void _lambda103_ (BuildToolDialog* self) {
 	GtkTreeIter iter1 = {0};
 	GtkTreeIter iter2 = {0};
+	GtkTreeIter _tmp0_ = {0};
+	gint _tmp1_;
 	gint i;
-	i = utils_get_selected_row (self->priv->treeview_jobs, &iter1);
+	_tmp1_ = utils_get_selected_row (self->priv->treeview_jobs, &_tmp0_);
+	iter1 = _tmp0_;
+	i = _tmp1_;
 	if (i != (-1)) {
+		gboolean _tmp2_;
 		iter2 = iter1;
-		if (gtk_tree_model_iter_next ((GtkTreeModel*) self->priv->jobs_store, &iter2)) {
+		_tmp2_ = gtk_tree_model_iter_next ((GtkTreeModel*) self->priv->jobs_store, &iter2);
+		if (_tmp2_) {
 			gtk_list_store_swap (self->priv->jobs_store, &iter1, &iter2);
 		}
 	}
 }
 
 
-static void __lambda100__gtk_button_clicked (GtkButton* _sender, gpointer self) {
-	_lambda100_ (self);
+static void __lambda103__gtk_button_clicked (GtkButton* _sender, gpointer self) {
+	_lambda103_ (self);
 }
 
 
@@ -543,17 +673,19 @@ static void build_tool_dialog_init_actions (BuildToolDialog* self) {
 	g_return_if_fail (self != NULL);
 	g_signal_connect_object (self->priv->button_add, "clicked", (GCallback) _build_tool_dialog_on_command_add_gtk_button_clicked, self, 0);
 	g_signal_connect_object (self->priv->entry_command, "activate", (GCallback) _build_tool_dialog_on_command_add_gtk_entry_activate, self, 0);
-	g_signal_connect_object (self->priv->button_delete, "clicked", (GCallback) __lambda98__gtk_button_clicked, self, 0);
-	g_signal_connect_object (self->priv->button_up, "clicked", (GCallback) __lambda99__gtk_button_clicked, self, 0);
-	g_signal_connect_object (self->priv->button_down, "clicked", (GCallback) __lambda100__gtk_button_clicked, self, 0);
+	g_signal_connect_object (self->priv->button_delete, "clicked", (GCallback) __lambda101__gtk_button_clicked, self, 0);
+	g_signal_connect_object (self->priv->button_up, "clicked", (GCallback) __lambda102__gtk_button_clicked, self, 0);
+	g_signal_connect_object (self->priv->button_down, "clicked", (GCallback) __lambda103__gtk_button_clicked, self, 0);
 }
 
 
-static char* string_strip (const char* self) {
-	char* result = NULL;
-	char* _result_;
+static gchar* string_strip (const gchar* self) {
+	gchar* result = NULL;
+	gchar* _tmp0_ = NULL;
+	gchar* _result_;
 	g_return_val_if_fail (self != NULL, NULL);
-	_result_ = g_strdup (self);
+	_tmp0_ = g_strdup (self);
+	_result_ = _tmp0_;
 	g_strstrip (_result_);
 	result = _result_;
 	return result;
@@ -561,15 +693,26 @@ static char* string_strip (const char* self) {
 
 
 static void build_tool_dialog_on_command_add (BuildToolDialog* self) {
-	char* _tmp0_;
-	gboolean _tmp1_;
+	const gchar* _tmp0_ = NULL;
+	gchar* _tmp1_ = NULL;
+	gchar* _tmp2_;
+	gboolean _tmp3_;
 	GtkTreeIter iter = {0};
+	GtkTreeIter _tmp4_ = {0};
+	const gchar* _tmp5_ = NULL;
 	g_return_if_fail (self != NULL);
-	if ((_tmp1_ = _vala_strcmp0 (_tmp0_ = string_strip (gtk_entry_get_text (self->priv->entry_command)), "") == 0, _g_free0 (_tmp0_), _tmp1_)) {
+	_tmp0_ = gtk_entry_get_text (self->priv->entry_command);
+	_tmp1_ = string_strip (_tmp0_);
+	_tmp2_ = _tmp1_;
+	_tmp3_ = g_strcmp0 (_tmp2_, "") == 0;
+	_g_free0 (_tmp2_);
+	if (_tmp3_) {
 		return;
 	}
-	gtk_list_store_append (self->priv->jobs_store, &iter);
-	gtk_list_store_set (self->priv->jobs_store, &iter, BUILD_TOOL_DIALOG_JOB_COLUMN_COMMAND, gtk_entry_get_text (self->priv->entry_command), BUILD_TOOL_DIALOG_JOB_COLUMN_MUST_SUCCEED, TRUE, BUILD_TOOL_DIALOG_JOB_COLUMN_POST_PROCESSOR, "no-output", -1, -1);
+	gtk_list_store_append (self->priv->jobs_store, &_tmp4_);
+	iter = _tmp4_;
+	_tmp5_ = gtk_entry_get_text (self->priv->entry_command);
+	gtk_list_store_set (self->priv->jobs_store, &iter, BUILD_TOOL_DIALOG_JOB_COLUMN_COMMAND, _tmp5_, BUILD_TOOL_DIALOG_JOB_COLUMN_MUST_SUCCEED, TRUE, BUILD_TOOL_DIALOG_JOB_COLUMN_POST_PROCESSOR, "no-output", -1, -1);
 	gtk_entry_set_text (self->priv->entry_command, "");
 }
 
@@ -583,13 +726,23 @@ static void build_tool_dialog_init (BuildToolDialog* self, gint num) {
 	if (num == (-1)) {
 		build_tool_dialog_init_new_build_tool (build_tool_dialog_instance);
 	} else {
-		AppSettings* _tmp0_;
-		GeeLinkedList* _tmp1_;
+		AppSettings* _tmp0_ = NULL;
+		AppSettings* _tmp1_;
+		GeeLinkedList* _tmp2_ = NULL;
+		GeeLinkedList* _tmp3_;
 		GeeLinkedList* tools;
-		BuildTool* _tmp2_;
-		tools = (_tmp1_ = app_settings_get_build_tools (_tmp0_ = app_settings_get_default ()), _g_object_unref0 (_tmp0_), _tmp1_);
-		build_tool_dialog_init_with_build_tool (build_tool_dialog_instance, _tmp2_ = (BuildTool*) gee_abstract_list_get ((GeeAbstractList*) tools, num));
-		_build_tool_free0 (_tmp2_);
+		gpointer _tmp4_ = NULL;
+		BuildTool* _tmp5_;
+		_tmp0_ = app_settings_get_default ();
+		_tmp1_ = _tmp0_;
+		_tmp2_ = app_settings_get_build_tools (_tmp1_);
+		_tmp3_ = _tmp2_;
+		_g_object_unref0 (_tmp1_);
+		tools = _tmp3_;
+		_tmp4_ = gee_abstract_list_get ((GeeAbstractList*) tools, num);
+		_tmp5_ = (BuildTool*) _tmp4_;
+		build_tool_dialog_init_with_build_tool (build_tool_dialog_instance, _tmp5_);
+		_build_tool_free0 (_tmp5_);
 	}
 	gtk_tree_view_columns_autosize (self->priv->treeview_jobs);
 }
@@ -624,7 +777,7 @@ static void build_tool_dialog_init_with_build_tool (BuildToolDialog* self, Build
 				if (!(i < G_N_ELEMENTS (BUILD_TOOL_DIALOG_icons))) {
 					break;
 				}
-				if (_vala_strcmp0 (BUILD_TOOL_DIALOG_icons[i].stock_id, (*tool).icon) == 0) {
+				if (g_strcmp0 (BUILD_TOOL_DIALOG_icons[i].stock_id, (*tool).icon) == 0) {
 					gtk_combo_box_set_active (self->priv->combobox_icon, i);
 					break;
 				}
@@ -637,12 +790,17 @@ static void build_tool_dialog_init_with_build_tool (BuildToolDialog* self, Build
 		GList* job_it;
 		job_collection = (*tool).jobs;
 		for (job_it = job_collection; job_it != NULL; job_it = job_it->next) {
-			BuildJob _tmp1_ = {0};
+			BuildJob _tmp1_;
+			BuildJob _tmp2_ = {0};
 			BuildJob job;
-			job = (build_job_copy ((BuildJob*) job_it->data, &_tmp1_), _tmp1_);
+			build_job_copy ((BuildJob*) job_it->data, &_tmp2_);
+			_tmp1_ = _tmp2_;
+			job = _tmp1_;
 			{
 				GtkTreeIter iter = {0};
-				gtk_list_store_append (self->priv->jobs_store, &iter);
+				GtkTreeIter _tmp3_ = {0};
+				gtk_list_store_append (self->priv->jobs_store, &_tmp3_);
+				iter = _tmp3_;
 				gtk_list_store_set (self->priv->jobs_store, &iter, BUILD_TOOL_DIALOG_JOB_COLUMN_COMMAND, job.command, BUILD_TOOL_DIALOG_JOB_COLUMN_MUST_SUCCEED, job.must_succeed, BUILD_TOOL_DIALOG_JOB_COLUMN_POST_PROCESSOR, job.post_processor, -1, -1);
 				build_job_destroy (&job);
 			}
@@ -660,31 +818,54 @@ static gboolean build_tool_dialog_run_me (BuildToolDialog* self, gint num) {
 	gboolean result = FALSE;
 	g_return_val_if_fail (self != NULL, FALSE);
 	while (TRUE) {
+		gint _tmp0_;
 		gboolean ok;
-		char* _tmp0_;
-		gboolean _tmp1_;
+		const gchar* _tmp1_ = NULL;
+		gchar* _tmp2_ = NULL;
+		gchar* _tmp3_;
+		gboolean _tmp4_;
 		GtkTreeIter iter = {0};
+		GtkTreeIter _tmp5_ = {0};
+		gboolean _tmp6_;
 		BuildTool tool = {0};
-		char* _tmp2_;
-		char* _tmp3_;
-		char* _tmp4_;
-		gboolean _tmp5_;
-		char* _tmp8_;
-		char* _tmp9_;
+		const gchar* _tmp7_ = NULL;
+		gchar* _tmp8_ = NULL;
+		gchar* _tmp9_ = NULL;
+		const gchar* _tmp10_ = NULL;
+		gchar* _tmp11_ = NULL;
+		gchar* _tmp12_;
+		gboolean _tmp13_;
+		gchar* _tmp17_;
+		const gchar* _tmp18_ = NULL;
+		gchar* _tmp19_ = NULL;
+		GtkTreeIter _tmp20_ = {0};
+		GtkTreeModel* _tmp21_ = NULL;
+		GtkTreeModel* _tmp22_;
 		GtkTreeModel* model;
-		GtkTreeModel* _tmp10_;
+		GtkTreeModel* _tmp23_ = NULL;
+		GtkTreeModel* _tmp24_;
+		GtkTreeIter _tmp25_ = {0};
+		gboolean _tmp26_;
 		gboolean valid;
-		if (!(gtk_dialog_run ((GtkDialog*) self) == GTK_RESPONSE_OK)) {
+		_tmp0_ = gtk_dialog_run ((GtkDialog*) self);
+		if (!(_tmp0_ == GTK_RESPONSE_OK)) {
 			break;
 		}
 		ok = TRUE;
-		if ((_tmp1_ = _vala_strcmp0 (_tmp0_ = string_strip (gtk_entry_get_text (self->priv->entry_label)), "") == 0, _g_free0 (_tmp0_), _tmp1_)) {
+		_tmp1_ = gtk_entry_get_text (self->priv->entry_label);
+		_tmp2_ = string_strip (_tmp1_);
+		_tmp3_ = _tmp2_;
+		_tmp4_ = g_strcmp0 (_tmp3_, "") == 0;
+		_g_free0 (_tmp3_);
+		if (_tmp4_) {
 			utils_set_entry_error ((GtkWidget*) self->priv->entry_label, TRUE);
 			ok = FALSE;
 		} else {
 			utils_set_entry_error ((GtkWidget*) self->priv->entry_label, FALSE);
 		}
-		if (!gtk_tree_model_get_iter_first ((GtkTreeModel*) self->priv->jobs_store, &iter)) {
+		_tmp6_ = gtk_tree_model_get_iter_first ((GtkTreeModel*) self->priv->jobs_store, &_tmp5_);
+		iter = _tmp5_;
+		if (!_tmp6_) {
 			utils_set_entry_error ((GtkWidget*) self->priv->entry_command, TRUE);
 			ok = FALSE;
 		} else {
@@ -694,51 +875,88 @@ static gboolean build_tool_dialog_run_me (BuildToolDialog* self, gint num) {
 			continue;
 		}
 		memset (&tool, 0, sizeof (BuildTool));
-		tool.label = (_tmp2_ = string_strip (gtk_entry_get_text (self->priv->entry_label)), _g_free0 (tool.label), _tmp2_);
-		_tmp3_ = NULL;
-		if ((_tmp5_ = _vala_strcmp0 (_tmp4_ = string_strip (gtk_entry_get_text (self->priv->entry_desc)), "") == 0, _g_free0 (_tmp4_), _tmp5_)) {
-			char* _tmp6_;
-			_tmp3_ = (_tmp6_ = g_strdup (tool.label), _g_free0 (_tmp3_), _tmp6_);
+		_tmp7_ = gtk_entry_get_text (self->priv->entry_label);
+		_tmp8_ = string_strip (_tmp7_);
+		_g_free0 (tool.label);
+		tool.label = _tmp8_;
+		_tmp10_ = gtk_entry_get_text (self->priv->entry_desc);
+		_tmp11_ = string_strip (_tmp10_);
+		_tmp12_ = _tmp11_;
+		_tmp13_ = g_strcmp0 (_tmp12_, "") == 0;
+		_g_free0 (_tmp12_);
+		if (_tmp13_) {
+			gchar* _tmp14_;
+			_tmp14_ = g_strdup (tool.label);
+			_g_free0 (_tmp9_);
+			_tmp9_ = _tmp14_;
 		} else {
-			char* _tmp7_;
-			_tmp3_ = (_tmp7_ = string_strip (gtk_entry_get_text (self->priv->entry_desc)), _g_free0 (_tmp3_), _tmp7_);
+			const gchar* _tmp15_ = NULL;
+			gchar* _tmp16_ = NULL;
+			_tmp15_ = gtk_entry_get_text (self->priv->entry_desc);
+			_tmp16_ = string_strip (_tmp15_);
+			_g_free0 (_tmp9_);
+			_tmp9_ = _tmp16_;
 		}
-		tool.description = (_tmp8_ = g_strdup (_tmp3_), _g_free0 (tool.description), _tmp8_);
-		tool.extensions = (_tmp9_ = string_strip (gtk_entry_get_text (self->priv->entry_extensions)), _g_free0 (tool.extensions), _tmp9_);
-		gtk_combo_box_get_active_iter (self->priv->combobox_icon, &iter);
-		model = _g_object_ref0 (gtk_combo_box_get_model (self->priv->combobox_icon));
+		_tmp17_ = g_strdup (_tmp9_);
+		_g_free0 (tool.description);
+		tool.description = _tmp17_;
+		_tmp18_ = gtk_entry_get_text (self->priv->entry_extensions);
+		_tmp19_ = string_strip (_tmp18_);
+		_g_free0 (tool.extensions);
+		tool.extensions = _tmp19_;
+		gtk_combo_box_get_active_iter (self->priv->combobox_icon, &_tmp20_);
+		iter = _tmp20_;
+		_tmp21_ = gtk_combo_box_get_model (self->priv->combobox_icon);
+		_tmp22_ = _g_object_ref0 (_tmp21_);
+		model = _tmp22_;
 		gtk_tree_model_get (model, &iter, 0, &tool.icon, -1, -1);
-		model = (_tmp10_ = _g_object_ref0 (gtk_tree_view_get_model (self->priv->treeview_jobs)), _g_object_unref0 (model), _tmp10_);
-		valid = gtk_tree_model_get_iter_first ((GtkTreeModel*) self->priv->jobs_store, &iter);
+		_tmp23_ = gtk_tree_view_get_model (self->priv->treeview_jobs);
+		_tmp24_ = _g_object_ref0 (_tmp23_);
+		_g_object_unref0 (model);
+		model = _tmp24_;
+		_tmp26_ = gtk_tree_model_get_iter_first ((GtkTreeModel*) self->priv->jobs_store, &_tmp25_);
+		iter = _tmp25_;
+		valid = _tmp26_;
 		while (TRUE) {
 			BuildJob job = {0};
-			char* command;
-			char* _tmp11_;
+			gchar* command = NULL;
+			gchar* _tmp27_ = NULL;
+			BuildJob* _tmp28_;
+			gboolean _tmp29_;
 			if (!valid) {
 				break;
 			}
 			memset (&job, 0, sizeof (BuildJob));
-			command = NULL;
 			gtk_tree_model_get (model, &iter, BUILD_TOOL_DIALOG_JOB_COLUMN_COMMAND, &command, BUILD_TOOL_DIALOG_JOB_COLUMN_MUST_SUCCEED, &job.must_succeed, BUILD_TOOL_DIALOG_JOB_COLUMN_POST_PROCESSOR, &job.post_processor, -1, -1);
-			job.command = (_tmp11_ = string_strip (command), _g_free0 (job.command), _tmp11_);
-			tool.jobs = g_list_append (tool.jobs, _build_job_dup0 (&job));
-			valid = gtk_tree_model_iter_next ((GtkTreeModel*) self->priv->jobs_store, &iter);
+			_tmp27_ = string_strip (command);
+			_g_free0 (job.command);
+			job.command = _tmp27_;
+			_tmp28_ = _build_job_dup0 (&job);
+			tool.jobs = g_list_append (tool.jobs, _tmp28_);
+			_tmp29_ = gtk_tree_model_iter_next ((GtkTreeModel*) self->priv->jobs_store, &iter);
+			valid = _tmp29_;
 			_g_free0 (command);
 			build_job_destroy (&job);
 		}
 		if (num == (-1)) {
-			AppSettings* _tmp12_;
-			app_settings_append_build_tool (_tmp12_ = app_settings_get_default (), &tool);
-			_g_object_unref0 (_tmp12_);
+			AppSettings* _tmp30_ = NULL;
+			AppSettings* _tmp31_;
+			_tmp30_ = app_settings_get_default ();
+			_tmp31_ = _tmp30_;
+			app_settings_append_build_tool (_tmp31_, &tool);
+			_g_object_unref0 (_tmp31_);
 		} else {
-			AppSettings* _tmp13_;
-			app_settings_update_build_tool (_tmp13_ = app_settings_get_default (), num, &tool);
-			_g_object_unref0 (_tmp13_);
+			AppSettings* _tmp32_ = NULL;
+			AppSettings* _tmp33_;
+			_tmp32_ = app_settings_get_default ();
+			_tmp33_ = _tmp32_;
+			app_settings_update_build_tool (_tmp33_, num, &tool);
+			_g_object_unref0 (_tmp33_);
 		}
 		gtk_widget_hide ((GtkWidget*) self);
 		result = TRUE;
 		_g_object_unref0 (model);
-		_g_free0 (_tmp3_);
+		_g_free0 (_tmp9_);
 		build_tool_destroy (&tool);
 		return result;
 	}
@@ -755,8 +973,8 @@ static void build_tool_dialog_icon_column_copy (const BuildToolDialogIconColumn*
 
 
 static void build_tool_dialog_icon_column_destroy (BuildToolDialogIconColumn* self) {
-	_g_free0 (self->stock_id);
-	_g_free0 (self->label);
+	_g_free0 ((*self).stock_id);
+	_g_free0 ((*self).label);
 }
 
 
@@ -845,16 +1063,4 @@ static void _vala_array_free (gpointer array, gint array_length, GDestroyNotify
 }
 
 
-static int _vala_strcmp0 (const char * str1, const char * str2) {
-	if (str1 == NULL) {
-		return -(str1 != str2);
-	}
-	if (str2 == NULL) {
-		return str1 != str2;
-	}
-	return strcmp (str1, str2);
-}
-
-
-
 
diff --git a/src/C/build_tool_runner.c b/src/C/build_tool_runner.c
index f92c088..090b71f 100644
--- a/src/C/build_tool_runner.c
+++ b/src/C/build_tool_runner.c
@@ -1,4 +1,4 @@
-/* build_tool_runner.c generated by valac 0.10.3, the Vala compiler
+/* build_tool_runner.c generated by valac 0.12.1, the Vala compiler
  * generated from build_tool_runner.vala, do not modify */
 
 /*
@@ -120,9 +120,9 @@ struct _BuildToolRunnerClass {
 
 struct _BuildJob {
 	gboolean must_succeed;
-	char* post_processor;
-	char* command;
-	char** command_args;
+	gchar* post_processor;
+	gchar* command;
+	gchar** command_args;
 	gint command_args_length1;
 };
 
@@ -133,15 +133,15 @@ struct _BuildToolRunnerPrivate {
 	gint _handlers_size_;
 	GIOChannel* out_channel;
 	gboolean read_output;
-	char* output;
+	gchar* output;
 	BuildView* view;
 	gboolean compilation;
-	char* document_view_program;
+	gchar* document_view_program;
 	GtkAction* action_stop_exec;
 	GFile* file;
-	char* filename;
-	char* shortname;
-	char* directory;
+	gchar* filename;
+	gchar* shortname;
+	gchar* directory;
 	GList* jobs;
 	gint job_num;
 	BuildJob current_job;
@@ -152,10 +152,10 @@ struct _BuildToolRunnerPrivate {
 };
 
 struct _BuildTool {
-	char* description;
-	char* extensions;
-	char* label;
-	char* icon;
+	gchar* description;
+	gchar* extensions;
+	gchar* label;
+	gchar* icon;
 	gboolean compilation;
 	GList* jobs;
 };
@@ -175,16 +175,16 @@ typedef enum  {
 } BuildMessageType;
 
 struct _BuildIssue {
-	char* message;
+	gchar* message;
 	BuildMessageType message_type;
-	char* filename;
+	gchar* filename;
 	gint start_line;
 	gint end_line;
 };
 
 struct _PostProcessorIface {
 	GTypeInterface parent_iface;
-	void (*process) (PostProcessor* self, GFile* file, const char* output, gint status);
+	void (*process) (PostProcessor* self, GFile* file, const gchar* output, gint status);
 	BuildIssue* (*get_issues) (PostProcessor* self, int* result_length1);
 	gboolean (*get_successful) (PostProcessor* self);
 	void (*set_successful) (PostProcessor* self, gboolean value);
@@ -212,29 +212,29 @@ void build_tool_copy (const BuildTool* self, BuildTool* dest);
 void build_tool_destroy (BuildTool* self);
 BuildToolRunner* build_tool_runner_new (GFile* file, BuildTool* tool, BuildView* view, GtkAction* action_stop_exec);
 BuildToolRunner* build_tool_runner_construct (GType object_type, GFile* file, BuildTool* tool, BuildView* view, GtkAction* action_stop_exec);
-char* utils_get_shortname (const char* path);
-char* utils_get_extension (const char* path);
-static gboolean _vala_string_array_contains (char** stack, int stack_length, char* needle);
+gchar* utils_get_shortname (const gchar* path);
+gchar* utils_get_extension (const gchar* path);
+static gboolean _vala_string_array_contains (gchar** stack, int stack_length, gchar* needle);
 void build_view_clear (BuildView* self);
 GType partition_state_get_type (void) G_GNUC_CONST;
-void build_view_add_partition (BuildView* self, const char* msg, PartitionState state, GtkTreeIter* parent, gboolean bold, GtkTreeIter* result);
-static char** build_tool_runner_get_command (BuildToolRunner* self, BuildJob* build_job, gboolean basename, int* result_length1);
-static void _vala_array_add3 (GtkTreeIter** array, int* length, int* size, const GtkTreeIter* value);
+void build_view_add_partition (BuildView* self, const gchar* msg, PartitionState state, GtkTreeIter* parent, gboolean bold, GtkTreeIter* result);
+static gchar** build_tool_runner_get_command (BuildToolRunner* self, BuildJob* build_job, gboolean basename, int* result_length1);
+static void _vala_array_add2 (GtkTreeIter** array, int* length, int* size, const GtkTreeIter* value);
 static void build_tool_runner_proceed (BuildToolRunner* self);
-BuildToolRunner* build_tool_runner_new_web_browser (GFile* file, const char* label, BuildView* view, GtkAction* action_stop_exec);
-BuildToolRunner* build_tool_runner_construct_web_browser (GType object_type, GFile* file, const char* label, BuildView* view, GtkAction* action_stop_exec);
-static void build_tool_runner_execute (BuildToolRunner* self, char** command, int command_length1, const char* working_directory, GError** error);
-static void _lambda57_ (BuildToolRunner* self);
-static void __lambda57__gspawn_child_setup_func (gpointer self);
+BuildToolRunner* build_tool_runner_new_web_browser (GFile* file, const gchar* label, BuildView* view, GtkAction* action_stop_exec);
+BuildToolRunner* build_tool_runner_construct_web_browser (GType object_type, GFile* file, const gchar* label, BuildView* view, GtkAction* action_stop_exec);
+static void build_tool_runner_execute (BuildToolRunner* self, gchar** command, int command_length1, const gchar* working_directory, GError** error);
+static void _lambda58_ (BuildToolRunner* self);
+static void __lambda58__gspawn_child_setup_func (gpointer self);
 static GPid* _g_pid_dup (GPid* self);
 static void build_tool_runner_on_exit (BuildToolRunner* self, GPid pid, gint status);
 static void _build_tool_runner_on_exit_gchild_watch_func (GPid pid, gint status, gpointer self);
-static void _vala_array_add4 (guint** array, int* length, int* size, guint value);
+static void _vala_array_add3 (guint** array, int* length, int* size, guint value);
 static gboolean build_tool_runner_on_output (BuildToolRunner* self);
 static gboolean _build_tool_runner_on_output_gsource_func (gpointer self);
+static void _vala_array_add4 (guint** array, int* length, int* size, guint value);
+static void build_tool_runner_execute_without_output (BuildToolRunner* self, gchar** command, int command_length1, const gchar* working_directory, GError** error);
 static void _vala_array_add5 (guint** array, int* length, int* size, guint value);
-static void build_tool_runner_execute_without_output (BuildToolRunner* self, char** command, int command_length1, const char* working_directory, GError** error);
-static void _vala_array_add6 (guint** array, int* length, int* size, guint value);
 void build_tool_runner_abort (BuildToolRunner* self);
 void build_view_set_partition_state (BuildView* self, GtkTreeIter* partition_id, PartitionState state);
 GType build_issue_get_type (void) G_GNUC_CONST;
@@ -253,22 +253,20 @@ GType all_output_post_processor_get_type (void) G_GNUC_CONST;
 RubberPostProcessor* rubber_post_processor_new (void);
 RubberPostProcessor* rubber_post_processor_construct (GType object_type);
 GType rubber_post_processor_get_type (void) G_GNUC_CONST;
-void post_processor_process (PostProcessor* self, GFile* file, const char* output, gint status);
+void post_processor_process (PostProcessor* self, GFile* file, const gchar* output, gint status);
 void build_view_append_issues (BuildView* self, GtkTreeIter* partition_id, BuildIssue* issues, int issues_length1);
 BuildIssue* post_processor_get_issues (PostProcessor* self, int* result_length1);
 static void _vala_BuildIssue_array_free (BuildIssue* array, gint array_length);
 gboolean post_processor_get_successful (PostProcessor* self);
 static void build_tool_runner_failed (BuildToolRunner* self);
-static char** _vala_array_dup1 (char** self, int length);
-static void _vala_array_add7 (char*** array, int* length, int* size, char* value);
-static void _vala_array_add8 (char*** array, int* length, int* size, char* value);
-static char** _vala_array_dup2 (char** self, int length);
+static gchar** _vala_array_dup1 (gchar** self, int length);
+static void _vala_array_add6 (gchar*** array, int* length, int* size, gchar* value);
+static void _vala_array_add7 (gchar*** array, int* length, int* size, gchar* value);
+static gchar** _vala_array_dup2 (gchar** self, int length);
 static void build_tool_runner_finalize (GObject* obj);
 static void _vala_array_destroy (gpointer array, gint array_length, GDestroyNotify destroy_func);
 static void _vala_array_free (gpointer array, gint array_length, GDestroyNotify destroy_func);
 static gint _vala_array_length (gpointer array);
-static int _vala_strcmp0 (const char * str1, const char * str2);
-
 
 
 static gpointer _g_object_ref0 (gpointer self) {
@@ -276,18 +274,10 @@ static gpointer _g_object_ref0 (gpointer self) {
 }
 
 
-static glong string_get_length (const char* self) {
-	glong result;
-	g_return_val_if_fail (self != NULL, 0L);
-	result = g_utf8_strlen (self, (gssize) (-1));
-	return result;
-}
-
-
-static gboolean _vala_string_array_contains (char** stack, int stack_length, char* needle) {
+static gboolean _vala_string_array_contains (gchar** stack, int stack_length, gchar* needle) {
 	int i;
 	for (i = 0; i < stack_length; i++) {
-		if (_vala_strcmp0 (stack[i], needle) == 0) {
+		if (g_strcmp0 (stack[i], needle) == 0) {
 			return TRUE;
 		}
 	}
@@ -295,7 +285,7 @@ static gboolean _vala_string_array_contains (char** stack, int stack_length, cha
 }
 
 
-static void _vala_array_add3 (GtkTreeIter** array, int* length, int* size, const GtkTreeIter* value) {
+static void _vala_array_add2 (GtkTreeIter** array, int* length, int* size, const GtkTreeIter* value) {
 	if ((*length) == (*size)) {
 		*size = (*size) ? (2 * (*size)) : 4;
 		*array = g_renew (GtkTreeIter, *array, *size);
@@ -308,71 +298,112 @@ BuildToolRunner* build_tool_runner_construct (GType object_type, GFile* file, Bu
 	BuildToolRunner * self = NULL;
 	GFile* _tmp0_;
 	GtkAction* _tmp1_;
-	char* _tmp2_;
-	char* _tmp3_;
-	GFile* _tmp4_;
-	char* _tmp5_;
+	gchar* _tmp2_ = NULL;
+	gchar* _tmp3_ = NULL;
+	GFile* _tmp4_ = NULL;
+	GFile* _tmp5_;
+	gchar* _tmp6_ = NULL;
+	GSettings* _tmp7_ = NULL;
 	GSettings* settings;
-	char* _tmp6_;
+	gchar* _tmp8_ = NULL;
+	gchar** _tmp9_;
+	gchar** _tmp10_ = NULL;
+	gchar** extensions;
 	gint extensions_length1;
 	gint _extensions_size_;
-	char** _tmp8_;
-	char** _tmp7_;
-	char** extensions;
-	gboolean _tmp9_ = FALSE;
-	BuildView* _tmp11_;
-	GtkTreeIter _tmp12_ = {0};
+	gboolean _tmp11_ = FALSE;
+	gint _tmp12_;
+	BuildView* _tmp15_;
+	GtkTreeIter _tmp16_ = {0};
+	GtkTreeIter _tmp17_ = {0};
 	g_return_val_if_fail (file != NULL, NULL);
 	g_return_val_if_fail (view != NULL, NULL);
 	g_return_val_if_fail (action_stop_exec != NULL, NULL);
 	self = (BuildToolRunner*) g_object_new (object_type, NULL);
-	self->priv->file = (_tmp0_ = _g_object_ref0 (file), _g_object_unref0 (self->priv->file), _tmp0_);
+	_tmp0_ = _g_object_ref0 (file);
+	_g_object_unref0 (self->priv->file);
+	self->priv->file = _tmp0_;
 	self->priv->compilation = (*tool).compilation;
-	self->priv->action_stop_exec = (_tmp1_ = _g_object_ref0 (action_stop_exec), _g_object_unref0 (self->priv->action_stop_exec), _tmp1_);
-	self->priv->filename = (_tmp2_ = g_file_get_parse_name (file), _g_free0 (self->priv->filename), _tmp2_);
-	self->priv->shortname = (_tmp3_ = utils_get_shortname (self->priv->filename), _g_free0 (self->priv->shortname), _tmp3_);
-	self->priv->directory = (_tmp5_ = g_file_get_parse_name (_tmp4_ = g_file_get_parent (file)), _g_free0 (self->priv->directory), _tmp5_);
-	_g_object_unref0 (_tmp4_);
-	settings = g_settings_new ("org.gnome.latexila.preferences.latex");
-	self->priv->document_view_program = (_tmp6_ = g_settings_get_string (settings, "document-view-program"), _g_free0 (self->priv->document_view_program), _tmp6_);
-	extensions = (_tmp8_ = _tmp7_ = g_strsplit ((*tool).extensions, " ", 0), extensions_length1 = _vala_array_length (_tmp7_), _extensions_size_ = extensions_length1, _tmp8_);
-	if (string_get_length ((*tool).extensions) > 0) {
-		char* _tmp10_;
-		_tmp9_ = !_vala_string_array_contains (extensions, extensions_length1, _tmp10_ = utils_get_extension (self->priv->filename));
-		_g_free0 (_tmp10_);
+	_tmp1_ = _g_object_ref0 (action_stop_exec);
+	_g_object_unref0 (self->priv->action_stop_exec);
+	self->priv->action_stop_exec = _tmp1_;
+	_tmp2_ = g_file_get_parse_name (file);
+	_g_free0 (self->priv->filename);
+	self->priv->filename = _tmp2_;
+	_tmp3_ = utils_get_shortname (self->priv->filename);
+	_g_free0 (self->priv->shortname);
+	self->priv->shortname = _tmp3_;
+	_tmp4_ = g_file_get_parent (file);
+	_tmp5_ = _tmp4_;
+	_tmp6_ = g_file_get_parse_name (_tmp5_);
+	_g_free0 (self->priv->directory);
+	self->priv->directory = _tmp6_;
+	_g_object_unref0 (_tmp5_);
+	_tmp7_ = g_settings_new ("org.gnome.latexila.preferences.latex");
+	settings = _tmp7_;
+	_tmp8_ = g_settings_get_string (settings, "document-view-program");
+	_g_free0 (self->priv->document_view_program);
+	self->priv->document_view_program = _tmp8_;
+	_tmp10_ = _tmp9_ = g_strsplit ((*tool).extensions, " ", 0);
+	extensions = _tmp10_;
+	extensions_length1 = _vala_array_length (_tmp9_);
+	_extensions_size_ = _vala_array_length (_tmp9_);
+	_tmp12_ = strlen ((*tool).extensions);
+	if (_tmp12_ > 0) {
+		gchar* _tmp13_ = NULL;
+		gchar* _tmp14_;
+		_tmp13_ = utils_get_extension (self->priv->filename);
+		_tmp14_ = _tmp13_;
+		_tmp11_ = !_vala_string_array_contains (extensions, extensions_length1, _tmp14_);
+		_g_free0 (_tmp14_);
 	} else {
-		_tmp9_ = FALSE;
+		_tmp11_ = FALSE;
 	}
-	if (_tmp9_) {
+	if (_tmp11_) {
 		fprintf (stderr, "Warning: bad file extension\n");
 		extensions = (_vala_array_free (extensions, extensions_length1, (GDestroyNotify) g_free), NULL);
 		_g_object_unref0 (settings);
 		return self;
 	}
 	self->priv->jobs = (*tool).jobs;
-	self->priv->view = (_tmp11_ = _g_object_ref0 (view), _g_object_unref0 (self->priv->view), _tmp11_);
+	_tmp15_ = _g_object_ref0 (view);
+	_g_object_unref0 (self->priv->view);
+	self->priv->view = _tmp15_;
 	build_view_clear (view);
-	self->priv->root_partition = (build_view_add_partition (view, (*tool).label, PARTITION_STATE_RUNNING, NULL, TRUE, &_tmp12_), _tmp12_);
+	build_view_add_partition (view, (*tool).label, PARTITION_STATE_RUNNING, NULL, TRUE, &_tmp16_);
+	_tmp17_ = _tmp16_;
+	self->priv->root_partition = _tmp17_;
 	{
 		GList* job_collection;
 		GList* job_it;
 		job_collection = self->priv->jobs;
 		for (job_it = job_collection; job_it != NULL; job_it = job_it->next) {
-			BuildJob _tmp18_ = {0};
+			BuildJob _tmp18_;
+			BuildJob _tmp19_ = {0};
 			BuildJob job;
-			job = (build_job_copy ((BuildJob*) job_it->data, &_tmp18_), _tmp18_);
+			build_job_copy ((BuildJob*) job_it->data, &_tmp19_);
+			_tmp18_ = _tmp19_;
+			job = _tmp18_;
 			{
+				gint _tmp20_;
+				gchar** _tmp21_ = NULL;
+				gchar** command;
 				gint command_length1;
 				gint _command_size_;
-				char** _tmp14_;
-				gint _tmp13_;
-				char** command;
-				char* _tmp15_;
-				GtkTreeIter _tmp16_ = {0};
-				GtkTreeIter _tmp17_;
-				command = (_tmp14_ = build_tool_runner_get_command (self, &job, TRUE, &_tmp13_), command_length1 = _tmp13_, _command_size_ = command_length1, _tmp14_);
-				_vala_array_add3 (&self->priv->job_partitions, &self->priv->job_partitions_length1, &self->priv->_job_partitions_size_, (_tmp17_ = (build_view_add_partition (view, _tmp15_ = g_strjoinv (" ", command), PARTITION_STATE_RUNNING, &self->priv->root_partition, FALSE, &_tmp16_), _tmp16_), &_tmp17_));
-				_g_free0 (_tmp15_);
+				gchar* _tmp22_ = NULL;
+				gchar* _tmp23_;
+				GtkTreeIter _tmp24_ = {0};
+				GtkTreeIter _tmp25_ = {0};
+				_tmp21_ = build_tool_runner_get_command (self, &job, TRUE, &_tmp20_);
+				command = _tmp21_;
+				command_length1 = _tmp20_;
+				_command_size_ = _tmp20_;
+				_tmp22_ = g_strjoinv (" ", command);
+				_tmp23_ = _tmp22_;
+				build_view_add_partition (view, _tmp23_, PARTITION_STATE_RUNNING, &self->priv->root_partition, FALSE, &_tmp24_);
+				_tmp25_ = _tmp24_;
+				_vala_array_add2 (&self->priv->job_partitions, &self->priv->job_partitions_length1, &self->priv->_job_partitions_size_, &_tmp25_);
+				_g_free0 (_tmp23_);
 				command = (_vala_array_free (command, command_length1, (GDestroyNotify) g_free), NULL);
 				build_job_destroy (&job);
 			}
@@ -396,30 +427,45 @@ static gpointer _build_job_dup0 (gpointer self) {
 }
 
 
-BuildToolRunner* build_tool_runner_construct_web_browser (GType object_type, GFile* file, const char* label, BuildView* view, GtkAction* action_stop_exec) {
+BuildToolRunner* build_tool_runner_construct_web_browser (GType object_type, GFile* file, const gchar* label, BuildView* view, GtkAction* action_stop_exec) {
 	BuildToolRunner * self = NULL;
+	GSettings* _tmp0_ = NULL;
 	GSettings* settings;
 	BuildTool build_tool = {0};
-	char* _tmp0_;
-	char* _tmp1_;
+	gchar* _tmp1_;
+	gchar* _tmp2_;
 	BuildJob build_job = {0};
-	char* _tmp2_;
-	char* _tmp3_;
-	char* _tmp4_;
+	gchar* _tmp3_;
+	gchar* _tmp4_ = NULL;
+	gchar* _tmp5_;
+	gchar* _tmp6_ = NULL;
+	BuildJob* _tmp7_;
 	g_return_val_if_fail (file != NULL, NULL);
 	g_return_val_if_fail (label != NULL, NULL);
 	g_return_val_if_fail (view != NULL, NULL);
 	g_return_val_if_fail (action_stop_exec != NULL, NULL);
-	settings = g_settings_new ("org.gnome.latexila.preferences.editor");
+	_tmp0_ = g_settings_new ("org.gnome.latexila.preferences.editor");
+	settings = _tmp0_;
 	memset (&build_tool, 0, sizeof (BuildTool));
-	build_tool.extensions = (_tmp0_ = g_strdup (""), _g_free0 (build_tool.extensions), _tmp0_);
-	build_tool.label = (_tmp1_ = g_strdup (label), _g_free0 (build_tool.label), _tmp1_);
+	_tmp1_ = g_strdup ("");
+	_g_free0 (build_tool.extensions);
+	build_tool.extensions = _tmp1_;
+	_tmp2_ = g_strdup (label);
+	_g_free0 (build_tool.label);
+	build_tool.label = _tmp2_;
 	memset (&build_job, 0, sizeof (BuildJob));
-	build_job.post_processor = (_tmp2_ = g_strdup ("no-output"), _g_free0 (build_job.post_processor), _tmp2_);
+	_tmp3_ = g_strdup ("no-output");
+	_g_free0 (build_job.post_processor);
+	build_job.post_processor = _tmp3_;
 	build_job.must_succeed = TRUE;
-	build_job.command = (_tmp4_ = g_strdup_printf ("%s $filename", _tmp3_ = g_settings_get_string (settings, "web-browser")), _g_free0 (build_job.command), _tmp4_);
-	_g_free0 (_tmp3_);
-	build_tool.jobs = g_list_append (build_tool.jobs, _build_job_dup0 (&build_job));
+	_tmp4_ = g_settings_get_string (settings, "web-browser");
+	_tmp5_ = _tmp4_;
+	_tmp6_ = g_strdup_printf ("%s $filename", _tmp5_);
+	_g_free0 (build_job.command);
+	build_job.command = _tmp6_;
+	_g_free0 (_tmp5_);
+	_tmp7_ = _build_job_dup0 (&build_job);
+	build_tool.jobs = g_list_append (build_tool.jobs, _tmp7_);
 	self = (BuildToolRunner*) build_tool_runner_construct (object_type, file, &build_tool, view, action_stop_exec);
 	build_job_destroy (&build_job);
 	build_tool_destroy (&build_tool);
@@ -428,18 +474,18 @@ BuildToolRunner* build_tool_runner_construct_web_browser (GType object_type, GFi
 }
 
 
-BuildToolRunner* build_tool_runner_new_web_browser (GFile* file, const char* label, BuildView* view, GtkAction* action_stop_exec) {
+BuildToolRunner* build_tool_runner_new_web_browser (GFile* file, const gchar* label, BuildView* view, GtkAction* action_stop_exec) {
 	return build_tool_runner_construct_web_browser (TYPE_BUILD_TOOL_RUNNER, file, label, view, action_stop_exec);
 }
 
 
-static void _lambda57_ (BuildToolRunner* self) {
+static void _lambda58_ (BuildToolRunner* self) {
 	dup2 (STDOUT_FILENO, STDERR_FILENO);
 }
 
 
-static void __lambda57__gspawn_child_setup_func (gpointer self) {
-	_lambda57_ (self);
+static void __lambda58__gspawn_child_setup_func (gpointer self) {
+	_lambda58_ (self);
 }
 
 
@@ -461,7 +507,7 @@ static void _build_tool_runner_on_exit_gchild_watch_func (GPid pid, gint status,
 }
 
 
-static void _vala_array_add4 (guint** array, int* length, int* size, guint value) {
+static void _vala_array_add3 (guint** array, int* length, int* size, guint value) {
 	if ((*length) == (*size)) {
 		*size = (*size) ? (2 * (*size)) : 4;
 		*array = g_renew (guint, *array, *size);
@@ -477,7 +523,7 @@ static gboolean _build_tool_runner_on_output_gsource_func (gpointer self) {
 }
 
 
-static void _vala_array_add5 (guint** array, int* length, int* size, guint value) {
+static void _vala_array_add4 (guint** array, int* length, int* size, guint value) {
 	if ((*length) == (*size)) {
 		*size = (*size) ? (2 * (*size)) : 4;
 		*array = g_renew (guint, *array, *size);
@@ -491,41 +537,46 @@ static gpointer _g_error_copy0 (gpointer self) {
 }
 
 
-static void build_tool_runner_execute (BuildToolRunner* self, char** command, int command_length1, const char* working_directory, GError** error) {
+static void build_tool_runner_execute (BuildToolRunner* self, gchar** command, int command_length1, const gchar* working_directory, GError** error) {
+	gint std_out = 0;
+	GPid _tmp0_;
+	gint _tmp1_;
+	GPid* _tmp2_;
+	guint _tmp3_;
+	GIOChannel* _tmp4_ = NULL;
+	guint _tmp5_;
 	GError * _inner_error_ = NULL;
 	g_return_if_fail (self != NULL);
-	{
-		gint std_out = 0;
-		GPid _tmp0_;
-		GPid* _tmp1_;
-		GIOChannel* _tmp2_;
-		g_spawn_async_with_pipes (working_directory, command, NULL, G_SPAWN_DO_NOT_REAP_CHILD | G_SPAWN_SEARCH_PATH, __lambda57__gspawn_child_setup_func, self, &_tmp0_, NULL, &std_out, NULL, &_inner_error_);
-		self->priv->child_pid = (_tmp1_ = __g_pid_dup0 (&_tmp0_), _g_free0 (self->priv->child_pid), _tmp1_);
-		if (_inner_error_ != NULL) {
-			goto __catch14_g_error;
-		}
-		_vala_array_add4 (&self->priv->handlers, &self->priv->handlers_length1, &self->priv->_handlers_size_, g_child_watch_add_full (G_PRIORITY_DEFAULT_IDLE, *self->priv->child_pid, _build_tool_runner_on_exit_gchild_watch_func, g_object_ref (self), g_object_unref));
-		self->priv->out_channel = (_tmp2_ = g_io_channel_unix_new (std_out), _g_io_channel_unref0 (self->priv->out_channel), _tmp2_);
-		g_io_channel_set_flags (self->priv->out_channel, G_IO_FLAG_NONBLOCK, &_inner_error_);
-		if (_inner_error_ != NULL) {
-			goto __catch14_g_error;
-		}
-		_vala_array_add5 (&self->priv->handlers, &self->priv->handlers_length1, &self->priv->_handlers_size_, g_timeout_add_full (G_PRIORITY_DEFAULT, (guint) BUILD_TOOL_RUNNER_POLL_INTERVAL, _build_tool_runner_on_output_gsource_func, g_object_ref (self), g_object_unref));
+	g_spawn_async_with_pipes (working_directory, command, NULL, G_SPAWN_DO_NOT_REAP_CHILD | G_SPAWN_SEARCH_PATH, __lambda58__gspawn_child_setup_func, self, &_tmp0_, NULL, &_tmp1_, NULL, &_inner_error_);
+	_g_free0 (self->priv->child_pid);
+	_tmp2_ = __g_pid_dup0 (&_tmp0_);
+	self->priv->child_pid = _tmp2_;
+	std_out = _tmp1_;
+	if (_inner_error_ != NULL) {
+		goto __catch14_g_error;
+	}
+	_tmp3_ = g_child_watch_add_full (G_PRIORITY_DEFAULT_IDLE, *self->priv->child_pid, _build_tool_runner_on_exit_gchild_watch_func, g_object_ref (self), g_object_unref);
+	_vala_array_add3 (&self->priv->handlers, &self->priv->handlers_length1, &self->priv->_handlers_size_, _tmp3_);
+	_tmp4_ = g_io_channel_unix_new (std_out);
+	_g_io_channel_unref0 (self->priv->out_channel);
+	self->priv->out_channel = _tmp4_;
+	g_io_channel_set_flags (self->priv->out_channel, G_IO_FLAG_NONBLOCK, &_inner_error_);
+	if (_inner_error_ != NULL) {
+		goto __catch14_g_error;
 	}
+	_tmp5_ = g_timeout_add_full (G_PRIORITY_DEFAULT, (guint) BUILD_TOOL_RUNNER_POLL_INTERVAL, _build_tool_runner_on_output_gsource_func, g_object_ref (self), g_object_unref);
+	_vala_array_add4 (&self->priv->handlers, &self->priv->handlers_length1, &self->priv->_handlers_size_, _tmp5_);
 	goto __finally14;
 	__catch14_g_error:
 	{
 		GError * e;
+		GError* _tmp6_;
 		e = _inner_error_;
 		_inner_error_ = NULL;
-		{
-			_inner_error_ = _g_error_copy0 (e);
-			{
-				_g_error_free0 (e);
-				goto __finally14;
-			}
-			_g_error_free0 (e);
-		}
+		_tmp6_ = _g_error_copy0 (e);
+		_inner_error_ = _tmp6_;
+		_g_error_free0 (e);
+		goto __finally14;
 	}
 	__finally14:
 	if (_inner_error_ != NULL) {
@@ -535,7 +586,7 @@ static void build_tool_runner_execute (BuildToolRunner* self, char** command, in
 }
 
 
-static void _vala_array_add6 (guint** array, int* length, int* size, guint value) {
+static void _vala_array_add5 (guint** array, int* length, int* size, guint value) {
 	if ((*length) == (*size)) {
 		*size = (*size) ? (2 * (*size)) : 4;
 		*array = g_renew (guint, *array, *size);
@@ -544,34 +595,33 @@ static void _vala_array_add6 (guint** array, int* length, int* size, guint value
 }
 
 
-static void build_tool_runner_execute_without_output (BuildToolRunner* self, char** command, int command_length1, const char* working_directory, GError** error) {
+static void build_tool_runner_execute_without_output (BuildToolRunner* self, gchar** command, int command_length1, const gchar* working_directory, GError** error) {
+	GPid _tmp0_;
+	GPid* _tmp1_;
+	guint _tmp2_;
 	GError * _inner_error_ = NULL;
 	g_return_if_fail (self != NULL);
 	self->priv->read_output = FALSE;
-	{
-		GPid _tmp0_;
-		GPid* _tmp1_;
-		g_spawn_async (working_directory, command, NULL, G_SPAWN_DO_NOT_REAP_CHILD | G_SPAWN_SEARCH_PATH, NULL, NULL, &_tmp0_, &_inner_error_);
-		self->priv->child_pid = (_tmp1_ = __g_pid_dup0 (&_tmp0_), _g_free0 (self->priv->child_pid), _tmp1_);
-		if (_inner_error_ != NULL) {
-			goto __catch15_g_error;
-		}
-		_vala_array_add6 (&self->priv->handlers, &self->priv->handlers_length1, &self->priv->_handlers_size_, g_child_watch_add_full (G_PRIORITY_DEFAULT_IDLE, *self->priv->child_pid, _build_tool_runner_on_exit_gchild_watch_func, g_object_ref (self), g_object_unref));
+	g_spawn_async (working_directory, command, NULL, G_SPAWN_DO_NOT_REAP_CHILD | G_SPAWN_SEARCH_PATH, NULL, NULL, &_tmp0_, &_inner_error_);
+	_g_free0 (self->priv->child_pid);
+	_tmp1_ = __g_pid_dup0 (&_tmp0_);
+	self->priv->child_pid = _tmp1_;
+	if (_inner_error_ != NULL) {
+		goto __catch15_g_error;
 	}
+	_tmp2_ = g_child_watch_add_full (G_PRIORITY_DEFAULT_IDLE, *self->priv->child_pid, _build_tool_runner_on_exit_gchild_watch_func, g_object_ref (self), g_object_unref);
+	_vala_array_add5 (&self->priv->handlers, &self->priv->handlers_length1, &self->priv->_handlers_size_, _tmp2_);
 	goto __finally15;
 	__catch15_g_error:
 	{
 		GError * e;
+		GError* _tmp3_;
 		e = _inner_error_;
 		_inner_error_ = NULL;
-		{
-			_inner_error_ = _g_error_copy0 (e);
-			{
-				_g_error_free0 (e);
-				goto __finally15;
-			}
-			_g_error_free0 (e);
-		}
+		_tmp3_ = _g_error_copy0 (e);
+		_inner_error_ = _tmp3_;
+		_g_error_free0 (e);
+		goto __finally15;
 	}
 	__finally15:
 	if (_inner_error_ != NULL) {
@@ -618,7 +668,8 @@ void build_tool_runner_abort (BuildToolRunner* self) {
 				if (!(i < self->priv->job_partitions_length1)) {
 					break;
 				}
-				build_view_set_partition_state (self->priv->view, (_tmp1_ = self->priv->job_partitions[i], &_tmp1_), PARTITION_STATE_ABORTED);
+				_tmp1_ = self->priv->job_partitions[i];
+				build_view_set_partition_state (self->priv->view, &_tmp1_, PARTITION_STATE_ABORTED);
 			}
 		}
 	}
@@ -627,36 +678,35 @@ void build_tool_runner_abort (BuildToolRunner* self) {
 
 static gboolean build_tool_runner_on_output (BuildToolRunner* self) {
 	gboolean result = FALSE;
+	gchar* text = NULL;
+	gsize length = 0UL;
+	gchar* _tmp0_ = NULL;
+	gsize _tmp1_;
 	GError * _inner_error_ = NULL;
 	g_return_val_if_fail (self != NULL, FALSE);
 	g_return_val_if_fail (self->priv->read_output, FALSE);
-	{
-		char* text;
-		gsize length = 0UL;
-		char* _tmp0_ = NULL;
-		char* _tmp1_;
-		text = NULL;
-		g_io_channel_read_to_end (self->priv->out_channel, &_tmp0_, &length, &_inner_error_);
-		text = (_tmp1_ = _tmp0_, _g_free0 (text), _tmp1_);
-		if (_inner_error_ != NULL) {
-			_g_free0 (text);
-			goto __catch16_g_error;
-		}
-		if (length > 0) {
-			char* _tmp2_;
-			self->priv->output = (_tmp2_ = g_strconcat (self->priv->output, text, NULL), _g_free0 (self->priv->output), _tmp2_);
-		}
+	g_io_channel_read_to_end (self->priv->out_channel, &_tmp0_, &_tmp1_, &_inner_error_);
+	_g_free0 (text);
+	text = _tmp0_;
+	length = _tmp1_;
+	if (_inner_error_ != NULL) {
 		_g_free0 (text);
+		goto __catch16_g_error;
+	}
+	if (length > 0) {
+		gchar* _tmp2_;
+		_tmp2_ = g_strconcat (self->priv->output, text, NULL);
+		_g_free0 (self->priv->output);
+		self->priv->output = _tmp2_;
 	}
+	_g_free0 (text);
 	goto __finally16;
 	__catch16_g_error:
 	{
 		GError * e;
 		e = _inner_error_;
 		_inner_error_ = NULL;
-		{
-			_g_error_free0 (e);
-		}
+		_g_error_free0 (e);
 	}
 	__finally16:
 	if (_inner_error_ != NULL) {
@@ -681,17 +731,18 @@ static void _vala_BuildIssue_array_free (BuildIssue* array, gint array_length) {
 
 
 static void build_tool_runner_on_exit (BuildToolRunner* self, GPid pid, gint status) {
-	PostProcessor* post_processor;
-	const char* _tmp4_;
-	GQuark _tmp5_;
-	static GQuark _tmp5__label0 = 0;
-	static GQuark _tmp5__label1 = 0;
-	static GQuark _tmp5__label2 = 0;
+	PostProcessor* post_processor = NULL;
+	const gchar* _tmp0_;
+	GQuark _tmp1_;
+	static GQuark _tmp1__label0 = 0;
+	static GQuark _tmp1__label1 = 0;
+	static GQuark _tmp1__label2 = 0;
 	gint _tmp6_;
-	BuildIssue* _tmp7_;
-	gint _tmp7__length1;
-	GtkTreeIter _tmp8_;
-	BuildIssue* _tmp9_;
+	BuildIssue* _tmp7_ = NULL;
+	BuildIssue* _tmp8_;
+	gint _tmp8__length1;
+	GtkTreeIter _tmp9_;
+	gboolean _tmp10_;
 	g_return_if_fail (self != NULL);
 	{
 		guint* handler_collection;
@@ -710,55 +761,72 @@ static void build_tool_runner_on_exit (BuildToolRunner* self, GPid pid, gint sta
 	if (self->priv->read_output) {
 		build_tool_runner_on_output (self);
 	}
-	post_processor = NULL;
-	_tmp4_ = self->priv->current_job.post_processor;
-	_tmp5_ = (NULL == _tmp4_) ? 0 : g_quark_from_string (_tmp4_);
-	if (_tmp5_ == ((0 != _tmp5__label0) ? _tmp5__label0 : (_tmp5__label0 = g_quark_from_static_string ("no-output"))))
-	switch (0) {
-		default:
-		{
-			PostProcessor* _tmp0_;
-			post_processor = (_tmp0_ = (PostProcessor*) no_output_post_processor_new (), _g_object_unref0 (post_processor), _tmp0_);
-			break;
+	_tmp0_ = self->priv->current_job.post_processor;
+	_tmp1_ = (NULL == _tmp0_) ? 0 : g_quark_from_string (_tmp0_);
+	if (_tmp1_ == ((0 != _tmp1__label0) ? _tmp1__label0 : (_tmp1__label0 = g_quark_from_static_string ("no-output")))) {
+		switch (0) {
+			default:
+			{
+				NoOutputPostProcessor* _tmp2_ = NULL;
+				_tmp2_ = no_output_post_processor_new ();
+				_g_object_unref0 (post_processor);
+				post_processor = (PostProcessor*) _tmp2_;
+				break;
+			}
 		}
-	} else if (_tmp5_ == ((0 != _tmp5__label1) ? _tmp5__label1 : (_tmp5__label1 = g_quark_from_static_string ("all-output"))))
-	switch (0) {
-		default:
-		{
-			PostProcessor* _tmp1_;
-			post_processor = (_tmp1_ = (PostProcessor*) all_output_post_processor_new (), _g_object_unref0 (post_processor), _tmp1_);
-			break;
+	} else if (_tmp1_ == ((0 != _tmp1__label1) ? _tmp1__label1 : (_tmp1__label1 = g_quark_from_static_string ("all-output")))) {
+		switch (0) {
+			default:
+			{
+				AllOutputPostProcessor* _tmp3_ = NULL;
+				_tmp3_ = all_output_post_processor_new ();
+				_g_object_unref0 (post_processor);
+				post_processor = (PostProcessor*) _tmp3_;
+				break;
+			}
 		}
-	} else if (_tmp5_ == ((0 != _tmp5__label2) ? _tmp5__label2 : (_tmp5__label2 = g_quark_from_static_string ("rubber"))))
-	switch (0) {
-		default:
-		{
-			PostProcessor* _tmp2_;
-			post_processor = (_tmp2_ = (PostProcessor*) rubber_post_processor_new (), _g_object_unref0 (post_processor), _tmp2_);
-			break;
+	} else if (_tmp1_ == ((0 != _tmp1__label2) ? _tmp1__label2 : (_tmp1__label2 = g_quark_from_static_string ("rubber")))) {
+		switch (0) {
+			default:
+			{
+				RubberPostProcessor* _tmp4_ = NULL;
+				_tmp4_ = rubber_post_processor_new ();
+				_g_object_unref0 (post_processor);
+				post_processor = (PostProcessor*) _tmp4_;
+				break;
+			}
 		}
-	} else
-	switch (0) {
-		default:
-		{
-			PostProcessor* _tmp3_;
-			fprintf (stderr, "Warning: unknown post processor \"%s\". Use no-output.", self->priv->current_job.post_processor);
-			post_processor = (_tmp3_ = (PostProcessor*) no_output_post_processor_new (), _g_object_unref0 (post_processor), _tmp3_);
-			break;
+	} else {
+		switch (0) {
+			default:
+			{
+				NoOutputPostProcessor* _tmp5_ = NULL;
+				fprintf (stderr, "Warning: unknown post processor \"%s\". Use no-output.", self->priv->current_job.post_processor);
+				_tmp5_ = no_output_post_processor_new ();
+				_g_object_unref0 (post_processor);
+				post_processor = (PostProcessor*) _tmp5_;
+				break;
+			}
 		}
 	}
 	post_processor_process (post_processor, self->priv->file, self->priv->output, status);
-	_tmp9_ = (_tmp7_ = post_processor_get_issues (post_processor, &_tmp6_), _tmp7__length1 = _tmp6_, _tmp7_);
-	build_view_append_issues (self->priv->view, (_tmp8_ = self->priv->job_partitions[self->priv->job_num], &_tmp8_), _tmp9_, _tmp6_);
-	_tmp7_ = (_vala_BuildIssue_array_free (_tmp7_, _tmp7__length1), NULL);
-	if (post_processor_get_successful (post_processor)) {
-		GtkTreeIter _tmp10_;
-		build_view_set_partition_state (self->priv->view, (_tmp10_ = self->priv->job_partitions[self->priv->job_num], &_tmp10_), PARTITION_STATE_SUCCEEDED);
+	_tmp7_ = post_processor_get_issues (post_processor, &_tmp6_);
+	_tmp8_ = _tmp7_;
+	_tmp8__length1 = _tmp6_;
+	_tmp9_ = self->priv->job_partitions[self->priv->job_num];
+	build_view_append_issues (self->priv->view, &_tmp9_, _tmp8_, _tmp6_);
+	_tmp8_ = (_vala_BuildIssue_array_free (_tmp8_, _tmp8__length1), NULL);
+	_tmp10_ = post_processor_get_successful (post_processor);
+	if (_tmp10_) {
+		GtkTreeIter _tmp11_;
+		_tmp11_ = self->priv->job_partitions[self->priv->job_num];
+		build_view_set_partition_state (self->priv->view, &_tmp11_, PARTITION_STATE_SUCCEEDED);
 		self->priv->job_num++;
 		build_tool_runner_proceed (self);
 	} else {
-		GtkTreeIter _tmp11_;
-		build_view_set_partition_state (self->priv->view, (_tmp11_ = self->priv->job_partitions[self->priv->job_num], &_tmp11_), PARTITION_STATE_FAILED);
+		GtkTreeIter _tmp12_;
+		_tmp12_ = self->priv->job_partitions[self->priv->job_num];
+		build_view_set_partition_state (self->priv->view, &_tmp12_, PARTITION_STATE_FAILED);
 		if (self->priv->current_job.must_succeed) {
 			build_tool_runner_failed (self);
 		} else {
@@ -770,88 +838,114 @@ static void build_tool_runner_on_exit (BuildToolRunner* self, GPid pid, gint sta
 }
 
 
-static gboolean string_contains (const char* self, const char* needle) {
+static gboolean string_contains (const gchar* self, const gchar* needle) {
 	gboolean result = FALSE;
+	gchar* _tmp0_ = NULL;
 	g_return_val_if_fail (self != NULL, FALSE);
 	g_return_val_if_fail (needle != NULL, FALSE);
-	result = strstr (self, needle) != NULL;
+	_tmp0_ = strstr ((gchar*) self, (gchar*) needle);
+	result = _tmp0_ != NULL;
 	return result;
 }
 
 
 static void build_tool_runner_proceed (BuildToolRunner* self) {
-	char* _tmp0_;
+	guint _tmp0_;
+	gchar* _tmp1_;
+	gconstpointer _tmp2_ = NULL;
+	gint _tmp3_;
+	gchar** _tmp4_ = NULL;
+	gchar** command;
 	gint command_length1;
 	gint _command_size_;
-	char** _tmp2_;
-	gint _tmp1_;
-	char** command;
 	GError * _inner_error_ = NULL;
 	g_return_if_fail (self != NULL);
-	if (self->priv->job_num >= g_list_length (self->priv->jobs)) {
+	_tmp0_ = g_list_length (self->priv->jobs);
+	if (self->priv->job_num >= _tmp0_) {
 		build_view_set_partition_state (self->priv->view, &self->priv->root_partition, PARTITION_STATE_SUCCEEDED);
 		gtk_action_set_sensitive (self->priv->action_stop_exec, FALSE);
 		g_signal_emit_by_name (self, "finished");
 		return;
 	}
-	self->priv->output = (_tmp0_ = g_strdup (""), _g_free0 (self->priv->output), _tmp0_);
-	self->priv->current_job = *((BuildJob*) g_list_nth_data (self->priv->jobs, (guint) self->priv->job_num));
-	command = (_tmp2_ = build_tool_runner_get_command (self, &self->priv->current_job, FALSE, &_tmp1_), command_length1 = _tmp1_, _command_size_ = command_length1, _tmp2_);
-	{
-		if (_vala_strcmp0 (self->priv->current_job.post_processor, "no-output") == 0) {
-			build_tool_runner_execute_without_output (self, command, command_length1, self->priv->directory, &_inner_error_);
-			if (_inner_error_ != NULL) {
-				goto __catch17_g_error;
-			}
-		} else {
-			if (string_contains (self->priv->filename, " ")) {
-				gint issues_length1;
-				gint _issues_size_;
-				BuildIssue* _tmp3_;
-				BuildIssue* issues;
-				BuildIssue issue = {0};
-				char* _tmp4_;
-				char* _tmp5_;
-				BuildIssue _tmp6_ = {0};
-				BuildIssue _tmp7_;
-				GtkTreeIter _tmp8_;
-				issues = (_tmp3_ = g_new0 (BuildIssue, 1), issues_length1 = 1, _issues_size_ = issues_length1, _tmp3_);
-				memset (&issue, 0, sizeof (BuildIssue));
-				issue.message = (_tmp4_ = g_strdup (_ ("Rubber may not support filenames with spaces (even in a directory)")), _g_free0 (issue.message), _tmp4_);
-				issue.message_type = BUILD_MESSAGE_TYPE_WARNING;
-				issue.filename = (_tmp5_ = g_strdup (self->priv->filename), _g_free0 (issue.filename), _tmp5_);
-				issues[0] = (_tmp7_ = (build_issue_copy (&issue, &_tmp6_), _tmp6_), build_issue_destroy (&issues[0]), _tmp7_);
-				build_view_append_issues (self->priv->view, (_tmp8_ = self->priv->job_partitions[self->priv->job_num], &_tmp8_), issues, issues_length1);
-				build_issue_destroy (&issue);
-				issues = (_vala_BuildIssue_array_free (issues, issues_length1), NULL);
-			}
-			build_tool_runner_execute (self, command, command_length1, self->priv->directory, &_inner_error_);
-			if (_inner_error_ != NULL) {
-				goto __catch17_g_error;
-			}
+	_tmp1_ = g_strdup ("");
+	_g_free0 (self->priv->output);
+	self->priv->output = _tmp1_;
+	_tmp2_ = g_list_nth_data (self->priv->jobs, (guint) self->priv->job_num);
+	self->priv->current_job = *((BuildJob*) _tmp2_);
+	_tmp4_ = build_tool_runner_get_command (self, &self->priv->current_job, FALSE, &_tmp3_);
+	command = _tmp4_;
+	command_length1 = _tmp3_;
+	_command_size_ = _tmp3_;
+	if (g_strcmp0 (self->priv->current_job.post_processor, "no-output") == 0) {
+		build_tool_runner_execute_without_output (self, command, command_length1, self->priv->directory, &_inner_error_);
+		if (_inner_error_ != NULL) {
+			goto __catch17_g_error;
+		}
+	} else {
+		gboolean _tmp5_;
+		_tmp5_ = string_contains (self->priv->filename, " ");
+		if (_tmp5_) {
+			BuildIssue* _tmp6_ = NULL;
+			BuildIssue* issues;
+			gint issues_length1;
+			gint _issues_size_;
+			BuildIssue issue = {0};
+			const gchar* _tmp7_ = NULL;
+			gchar* _tmp8_;
+			gchar* _tmp9_;
+			BuildIssue _tmp10_;
+			BuildIssue _tmp11_ = {0};
+			BuildIssue _tmp12_;
+			GtkTreeIter _tmp13_;
+			_tmp6_ = g_new0 (BuildIssue, 1);
+			issues = _tmp6_;
+			issues_length1 = 1;
+			_issues_size_ = 1;
+			memset (&issue, 0, sizeof (BuildIssue));
+			_tmp7_ = _ ("Rubber may not support filenames with spaces (even in a directory)");
+			_tmp8_ = g_strdup (_tmp7_);
+			_g_free0 (issue.message);
+			issue.message = _tmp8_;
+			issue.message_type = BUILD_MESSAGE_TYPE_WARNING;
+			_tmp9_ = g_strdup (self->priv->filename);
+			_g_free0 (issue.filename);
+			issue.filename = _tmp9_;
+			build_issue_copy (&issue, &_tmp11_);
+			_tmp10_ = _tmp11_;
+			_tmp12_ = _tmp10_;
+			build_issue_destroy (&issues[0]);
+			issues[0] = _tmp12_;
+			_tmp13_ = self->priv->job_partitions[self->priv->job_num];
+			build_view_append_issues (self->priv->view, &_tmp13_, issues, issues_length1);
+			build_issue_destroy (&issue);
+			issues = (_vala_BuildIssue_array_free (issues, issues_length1), NULL);
+		}
+		build_tool_runner_execute (self, command, command_length1, self->priv->directory, &_inner_error_);
+		if (_inner_error_ != NULL) {
+			goto __catch17_g_error;
 		}
 	}
 	goto __finally17;
 	__catch17_g_error:
 	{
 		GError * e;
+		GtkTreeIter _tmp14_;
+		GtkTreeIter _tmp15_;
+		GtkTreeIter _tmp16_ = {0};
 		e = _inner_error_;
 		_inner_error_ = NULL;
-		{
-			GtkTreeIter _tmp9_;
-			GtkTreeIter _tmp10_;
-			GtkTreeIter _tmp11_ = {0};
-			build_view_set_partition_state (self->priv->view, (_tmp9_ = self->priv->job_partitions[self->priv->job_num], &_tmp9_), PARTITION_STATE_FAILED);
-			build_view_add_partition (self->priv->view, e->message, PARTITION_STATE_FAILED, (_tmp10_ = self->priv->job_partitions[self->priv->job_num], &_tmp10_), FALSE, &_tmp11_);
-			_tmp11_;
-			if (self->priv->current_job.must_succeed) {
-				build_tool_runner_failed (self);
-			} else {
-				self->priv->job_num++;
-				build_tool_runner_proceed (self);
-			}
-			_g_error_free0 (e);
+		_tmp14_ = self->priv->job_partitions[self->priv->job_num];
+		build_view_set_partition_state (self->priv->view, &_tmp14_, PARTITION_STATE_FAILED);
+		_tmp15_ = self->priv->job_partitions[self->priv->job_num];
+		build_view_add_partition (self->priv->view, e->message, PARTITION_STATE_FAILED, &_tmp15_, FALSE, &_tmp16_);
+		_tmp16_;
+		if (self->priv->current_job.must_succeed) {
+			build_tool_runner_failed (self);
+		} else {
+			self->priv->job_num++;
+			build_tool_runner_proceed (self);
 		}
+		_g_error_free0 (e);
 	}
 	__finally17:
 	if (_inner_error_ != NULL) {
@@ -864,10 +958,10 @@ static void build_tool_runner_proceed (BuildToolRunner* self) {
 }
 
 
-static char** _vala_array_dup1 (char** self, int length) {
-	char** result;
+static gchar** _vala_array_dup1 (gchar** self, int length) {
+	gchar** result;
 	int i;
-	result = g_new0 (char*, length + 1);
+	result = g_new0 (gchar*, length + 1);
 	for (i = 0; i < length; i++) {
 		result[i] = g_strdup (self[i]);
 	}
@@ -875,40 +969,38 @@ static char** _vala_array_dup1 (char** self, int length) {
 }
 
 
-static void _vala_array_add7 (char*** array, int* length, int* size, char* value) {
+static void _vala_array_add6 (gchar*** array, int* length, int* size, gchar* value) {
 	if ((*length) == (*size)) {
 		*size = (*size) ? (2 * (*size)) : 4;
-		*array = g_renew (char*, *array, (*size) + 1);
+		*array = g_renew (gchar*, *array, (*size) + 1);
 	}
 	(*array)[(*length)++] = value;
 	(*array)[*length] = NULL;
 }
 
 
-static char* g_unichar_to_string (gunichar self) {
-	char* result = NULL;
-	char* str;
-	str = (char*) g_new0 (gchar, 7);
-	g_unichar_to_utf8 (self, str);
-	result = str;
+static gchar string_get (const gchar* self, glong index) {
+	gchar result = '\0';
+	g_return_val_if_fail (self != NULL, '\0');
+	result = ((gchar*) self)[index];
 	return result;
 }
 
 
-static void _vala_array_add8 (char*** array, int* length, int* size, char* value) {
+static void _vala_array_add7 (gchar*** array, int* length, int* size, gchar* value) {
 	if ((*length) == (*size)) {
 		*size = (*size) ? (2 * (*size)) : 4;
-		*array = g_renew (char*, *array, (*size) + 1);
+		*array = g_renew (gchar*, *array, (*size) + 1);
 	}
 	(*array)[(*length)++] = value;
 	(*array)[*length] = NULL;
 }
 
 
-static char** _vala_array_dup2 (char** self, int length) {
-	char** result;
+static gchar** _vala_array_dup2 (gchar** self, int length) {
+	gchar** result;
 	int i;
-	result = g_new0 (char*, length + 1);
+	result = g_new0 (gchar*, length + 1);
 	for (i = 0; i < length; i++) {
 		result[i] = g_strdup (self[i]);
 	}
@@ -916,51 +1008,57 @@ static char** _vala_array_dup2 (char** self, int length) {
 }
 
 
-static char* string_replace (const char* self, const char* old, const char* replacement) {
-	char* result = NULL;
+static gchar* string_replace (const gchar* self, const gchar* old, const gchar* replacement) {
+	gchar* result = NULL;
+	gchar* _tmp0_ = NULL;
+	gchar* _tmp1_;
+	GRegex* _tmp2_ = NULL;
+	GRegex* _tmp3_;
+	GRegex* regex;
+	gchar* _tmp4_ = NULL;
+	gchar* _tmp5_;
 	GError * _inner_error_ = NULL;
 	g_return_val_if_fail (self != NULL, NULL);
 	g_return_val_if_fail (old != NULL, NULL);
 	g_return_val_if_fail (replacement != NULL, NULL);
-	{
-		char* _tmp0_;
-		GRegex* _tmp1_;
-		GRegex* regex;
-		char* _tmp2_;
-		regex = (_tmp1_ = g_regex_new (_tmp0_ = g_regex_escape_string (old, -1), 0, 0, &_inner_error_), _g_free0 (_tmp0_), _tmp1_);
-		if (_inner_error_ != NULL) {
-			if (_inner_error_->domain == G_REGEX_ERROR) {
-				goto __catch18_g_regex_error;
-			}
-			g_critical ("file %s: line %d: unexpected error: %s (%s, %d)", __FILE__, __LINE__, _inner_error_->message, g_quark_to_string (_inner_error_->domain), _inner_error_->code);
-			g_clear_error (&_inner_error_);
-			return NULL;
+	_tmp0_ = g_regex_escape_string (old, -1);
+	_tmp1_ = _tmp0_;
+	_tmp2_ = g_regex_new (_tmp1_, 0, 0, &_inner_error_);
+	_tmp3_ = _tmp2_;
+	_g_free0 (_tmp1_);
+	regex = _tmp3_;
+	if (_inner_error_ != NULL) {
+		if (_inner_error_->domain == G_REGEX_ERROR) {
+			goto __catch18_g_regex_error;
 		}
-		_tmp2_ = g_regex_replace_literal (regex, self, (gssize) (-1), 0, replacement, 0, &_inner_error_);
-		if (_inner_error_ != NULL) {
-			_g_regex_unref0 (regex);
-			if (_inner_error_->domain == G_REGEX_ERROR) {
-				goto __catch18_g_regex_error;
-			}
-			_g_regex_unref0 (regex);
-			g_critical ("file %s: line %d: unexpected error: %s (%s, %d)", __FILE__, __LINE__, _inner_error_->message, g_quark_to_string (_inner_error_->domain), _inner_error_->code);
-			g_clear_error (&_inner_error_);
-			return NULL;
+		g_critical ("file %s: line %d: unexpected error: %s (%s, %d)", __FILE__, __LINE__, _inner_error_->message, g_quark_to_string (_inner_error_->domain), _inner_error_->code);
+		g_clear_error (&_inner_error_);
+		return NULL;
+	}
+	_tmp4_ = g_regex_replace_literal (regex, self, (gssize) (-1), 0, replacement, 0, &_inner_error_);
+	_tmp5_ = _tmp4_;
+	if (_inner_error_ != NULL) {
+		_g_regex_unref0 (regex);
+		if (_inner_error_->domain == G_REGEX_ERROR) {
+			goto __catch18_g_regex_error;
 		}
-		result = _tmp2_;
 		_g_regex_unref0 (regex);
-		return result;
+		g_critical ("file %s: line %d: unexpected error: %s (%s, %d)", __FILE__, __LINE__, _inner_error_->message, g_quark_to_string (_inner_error_->domain), _inner_error_->code);
+		g_clear_error (&_inner_error_);
+		return NULL;
 	}
+	result = _tmp5_;
+	_g_regex_unref0 (regex);
+	return result;
+	_g_regex_unref0 (regex);
 	goto __finally18;
 	__catch18_g_regex_error:
 	{
 		GError * e;
 		e = _inner_error_;
 		_inner_error_ = NULL;
-		{
-			g_assert_not_reached ();
-			_g_error_free0 (e);
-		}
+		g_assert_not_reached ();
+		_g_error_free0 (e);
 	}
 	__finally18:
 	if (_inner_error_ != NULL) {
@@ -971,98 +1069,143 @@ static char* string_replace (const char* self, const char* old, const char* repl
 }
 
 
-static char** build_tool_runner_get_command (BuildToolRunner* self, BuildJob* build_job, gboolean basename, int* result_length1) {
-	char** result = NULL;
-	char* base_filename;
-	char* base_shortname;
+static gchar** build_tool_runner_get_command (BuildToolRunner* self, BuildJob* build_job, gboolean basename, int* result_length1) {
+	gchar** result = NULL;
+	gchar* base_filename;
+	gchar* base_shortname;
+	gchar** _tmp2_ = NULL;
+	gchar** command;
 	gint command_length1;
 	gint _command_size_;
-	char** _tmp3_;
-	char** _tmp2_ = NULL;
-	char** command;
-	char** _tmp26_;
+	gchar** _tmp43_;
 	g_return_val_if_fail (self != NULL, NULL);
 	base_filename = NULL;
 	base_shortname = NULL;
 	if (basename) {
-		char* _tmp0_;
-		char* _tmp1_;
-		base_filename = (_tmp0_ = g_file_get_basename (self->priv->file), _g_free0 (base_filename), _tmp0_);
-		base_shortname = (_tmp1_ = utils_get_shortname (base_filename), _g_free0 (base_shortname), _tmp1_);
+		gchar* _tmp0_ = NULL;
+		gchar* _tmp1_ = NULL;
+		_tmp0_ = g_file_get_basename (self->priv->file);
+		_g_free0 (base_filename);
+		base_filename = _tmp0_;
+		_tmp1_ = utils_get_shortname (base_filename);
+		_g_free0 (base_shortname);
+		base_shortname = _tmp1_;
 	}
-	command = (_tmp3_ = (_tmp2_ = g_new0 (char*, 0 + 1), _tmp2_), command_length1 = 0, _command_size_ = command_length1, _tmp3_);
+	_tmp2_ = g_new0 (gchar*, 0 + 1);
+	command = _tmp2_;
+	command_length1 = 0;
+	_command_size_ = 0;
 	if ((*build_job).command_args != NULL) {
-		char** _tmp4_;
-		char** _tmp5_;
-		command = (_tmp5_ = (_tmp4_ = (*build_job).command_args, (_tmp4_ == NULL) ? ((gpointer) _tmp4_) : _vala_array_dup1 (_tmp4_, (*build_job).command_args_length1)), command = (_vala_array_free (command, command_length1, (GDestroyNotify) g_free), NULL), command_length1 = (*build_job).command_args_length1, _command_size_ = command_length1, _tmp5_);
+		gchar** _tmp3_;
+		gchar** _tmp4_;
+		_tmp3_ = (_tmp4_ = (*build_job).command_args, (_tmp4_ == NULL) ? ((gpointer) _tmp4_) : _vala_array_dup1 (_tmp4_, (*build_job).command_args_length1));
+		command = (_vala_array_free (command, command_length1, (GDestroyNotify) g_free), NULL);
+		command = _tmp3_;
+		command_length1 = (*build_job).command_args_length1;
+		_command_size_ = (*build_job).command_args_length1;
 	} else {
+		gchar** _tmp5_;
+		gchar** _tmp6_ = NULL;
+		gchar** args;
 		gint args_length1;
 		gint _args_size_;
-		char** _tmp7_;
-		char** _tmp6_;
-		char** args;
-		char* arg_buf;
-		char* delimiter;
-		char** _tmp16_;
-		char** _tmp17_;
-		args = (_tmp7_ = _tmp6_ = g_strsplit ((*build_job).command, " ", 0), args_length1 = _vala_array_length (_tmp6_), _args_size_ = args_length1, _tmp7_);
-		arg_buf = g_strdup ("");
+		gchar* _tmp7_;
+		gchar* arg_buf;
+		gchar* delimiter;
+		gchar** _tmp25_;
+		gchar** _tmp26_;
+		_tmp6_ = _tmp5_ = g_strsplit ((*build_job).command, " ", 0);
+		args = _tmp6_;
+		args_length1 = _vala_array_length (_tmp5_);
+		_args_size_ = _vala_array_length (_tmp5_);
+		_tmp7_ = g_strdup ("");
+		arg_buf = _tmp7_;
 		delimiter = NULL;
 		{
-			char** arg_collection;
+			gchar** arg_collection;
 			int arg_collection_length1;
 			int arg_it;
 			arg_collection = args;
 			arg_collection_length1 = args_length1;
 			for (arg_it = 0; arg_it < args_length1; arg_it = arg_it + 1) {
-				char* arg;
-				arg = g_strdup (arg_collection[arg_it]);
+				gchar* _tmp8_;
+				gchar* arg;
+				_tmp8_ = g_strdup (arg_collection[arg_it]);
+				arg = _tmp8_;
 				{
-					gboolean _tmp11_ = FALSE;
-					gboolean _tmp12_ = FALSE;
+					gboolean _tmp14_ = FALSE;
+					gboolean _tmp15_ = FALSE;
+					gboolean _tmp16_;
+					gchar* _tmp24_;
 					if (delimiter != NULL) {
-						char* _tmp8_;
-						char* _tmp9_;
-						arg_buf = (_tmp9_ = g_strconcat (arg_buf, _tmp8_ = g_strconcat (" ", arg, NULL), NULL), _g_free0 (arg_buf), _tmp9_);
-						_g_free0 (_tmp8_);
-						if (g_str_has_suffix (arg, delimiter)) {
-							char* _tmp10_;
-							delimiter = (_tmp10_ = NULL, _g_free0 (delimiter), _tmp10_);
-							_vala_array_add7 (&command, &command_length1, &_command_size_, g_strdup (arg_buf));
+						gchar* _tmp9_;
+						gchar* _tmp10_;
+						gchar* _tmp11_;
+						gboolean _tmp12_;
+						_tmp9_ = g_strconcat (" ", arg, NULL);
+						_tmp10_ = _tmp9_;
+						_tmp11_ = g_strconcat (arg_buf, _tmp10_, NULL);
+						_g_free0 (arg_buf);
+						arg_buf = _tmp11_;
+						_g_free0 (_tmp10_);
+						_tmp12_ = g_str_has_suffix (arg, delimiter);
+						if (_tmp12_) {
+							gchar* _tmp13_;
+							_g_free0 (delimiter);
+							delimiter = NULL;
+							_tmp13_ = g_strdup (arg_buf);
+							_vala_array_add6 (&command, &command_length1, &_command_size_, _tmp13_);
 						}
 						_g_free0 (arg);
 						continue;
 					}
-					if (g_str_has_prefix (arg, "'")) {
-						_tmp12_ = !g_str_has_suffix (arg, "'");
+					_tmp16_ = g_str_has_prefix (arg, "'");
+					if (_tmp16_) {
+						gboolean _tmp17_;
+						_tmp17_ = g_str_has_suffix (arg, "'");
+						_tmp15_ = !_tmp17_;
 					} else {
-						_tmp12_ = FALSE;
+						_tmp15_ = FALSE;
 					}
-					if (_tmp12_) {
-						_tmp11_ = TRUE;
+					if (_tmp15_) {
+						_tmp14_ = TRUE;
 					} else {
-						gboolean _tmp13_ = FALSE;
-						if (g_str_has_prefix (arg, "\"")) {
-							_tmp13_ = !g_str_has_suffix (arg, "\"");
+						gboolean _tmp18_ = FALSE;
+						gboolean _tmp19_;
+						_tmp19_ = g_str_has_prefix (arg, "\"");
+						if (_tmp19_) {
+							gboolean _tmp20_;
+							_tmp20_ = g_str_has_suffix (arg, "\"");
+							_tmp18_ = !_tmp20_;
 						} else {
-							_tmp13_ = FALSE;
+							_tmp18_ = FALSE;
 						}
-						_tmp11_ = _tmp13_;
+						_tmp14_ = _tmp18_;
 					}
-					if (_tmp11_) {
-						char* _tmp14_;
-						char* _tmp15_;
-						delimiter = (_tmp14_ = g_unichar_to_string (g_utf8_get_char (g_utf8_offset_to_pointer (arg, 0))), _g_free0 (delimiter), _tmp14_);
-						arg_buf = (_tmp15_ = g_strdup (arg), _g_free0 (arg_buf), _tmp15_);
+					if (_tmp14_) {
+						gchar _tmp21_;
+						gchar* _tmp22_ = NULL;
+						gchar* _tmp23_;
+						_tmp21_ = string_get (arg, (glong) 0);
+						_tmp22_ = g_strdup_printf ("%c", _tmp21_);
+						_g_free0 (delimiter);
+						delimiter = _tmp22_;
+						_tmp23_ = g_strdup (arg);
+						_g_free0 (arg_buf);
+						arg_buf = _tmp23_;
 						_g_free0 (arg);
 						continue;
 					}
-					_vala_array_add8 (&command, &command_length1, &_command_size_, g_strdup (arg));
+					_tmp24_ = g_strdup (arg);
+					_vala_array_add7 (&command, &command_length1, &_command_size_, _tmp24_);
 					_g_free0 (arg);
 				}
 			}
 		}
-		(*build_job).command_args = (_tmp17_ = (_tmp16_ = command, (_tmp16_ == NULL) ? ((gpointer) _tmp16_) : _vala_array_dup2 (_tmp16_, command_length1)), (*build_job).command_args = (_vala_array_free ((*build_job).command_args, (*build_job).command_args_length1, (GDestroyNotify) g_free), NULL), (*build_job).command_args_length1 = command_length1, _tmp17_);
+		_tmp25_ = (_tmp26_ = command, (_tmp26_ == NULL) ? ((gpointer) _tmp26_) : _vala_array_dup2 (_tmp26_, command_length1));
+		(*build_job).command_args = (_vala_array_free ((*build_job).command_args, (*build_job).command_args_length1, (GDestroyNotify) g_free), NULL);
+		(*build_job).command_args = _tmp25_;
+		(*build_job).command_args_length1 = command_length1;
 		_g_free0 (delimiter);
 		_g_free0 (arg_buf);
 		args = (_vala_array_free (args, args_length1, (GDestroyNotify) g_free), NULL);
@@ -1071,55 +1214,82 @@ static char** build_tool_runner_get_command (BuildToolRunner* self, BuildJob* bu
 		gint i;
 		i = 0;
 		{
-			gboolean _tmp18_;
-			_tmp18_ = TRUE;
+			gboolean _tmp27_;
+			_tmp27_ = TRUE;
 			while (TRUE) {
-				if (!_tmp18_) {
+				gboolean _tmp28_;
+				gboolean _tmp31_;
+				gboolean _tmp37_;
+				if (!_tmp27_) {
 					i++;
 				}
-				_tmp18_ = FALSE;
+				_tmp27_ = FALSE;
 				if (!(i < command_length1)) {
 					break;
 				}
-				if (string_contains (command[i], "$view")) {
-					char* _tmp19_;
-					command[i] = (_tmp19_ = string_replace (command[i], "$view", self->priv->document_view_program), _g_free0 (command[i]), _tmp19_);
+				_tmp28_ = string_contains (command[i], "$view");
+				if (_tmp28_) {
+					gchar* _tmp29_ = NULL;
+					gchar* _tmp30_;
+					_tmp29_ = string_replace (command[i], "$view", self->priv->document_view_program);
+					_tmp30_ = _tmp29_;
+					_g_free0 (command[i]);
+					command[i] = _tmp30_;
 					continue;
 				}
-				if (string_contains (command[i], "$filename")) {
-					char* _tmp20_;
-					char* _tmp22_;
-					_tmp20_ = g_strdup (base_filename);
-					if (_tmp20_ == NULL) {
-						char* _tmp21_;
-						_tmp20_ = (_tmp21_ = g_strdup (self->priv->filename), _g_free0 (_tmp20_), _tmp21_);
+				_tmp31_ = string_contains (command[i], "$filename");
+				if (_tmp31_) {
+					gchar* _tmp32_;
+					gchar* _tmp33_;
+					gchar* _tmp35_ = NULL;
+					gchar* _tmp36_;
+					_tmp32_ = g_strdup (base_filename);
+					_tmp33_ = _tmp32_;
+					if (_tmp33_ == NULL) {
+						gchar* _tmp34_;
+						_tmp34_ = g_strdup (self->priv->filename);
+						_g_free0 (_tmp33_);
+						_tmp33_ = _tmp34_;
 					}
-					command[i] = (_tmp22_ = string_replace (command[i], "$filename", _tmp20_), _g_free0 (command[i]), _tmp22_);
-					_g_free0 (_tmp20_);
+					_tmp35_ = string_replace (command[i], "$filename", _tmp33_);
+					_tmp36_ = _tmp35_;
+					_g_free0 (command[i]);
+					command[i] = _tmp36_;
+					_g_free0 (_tmp33_);
 					continue;
 				}
-				if (string_contains (command[i], "$shortname")) {
-					char* _tmp23_;
-					char* _tmp25_;
-					_tmp23_ = g_strdup (base_shortname);
-					if (_tmp23_ == NULL) {
-						char* _tmp24_;
-						_tmp23_ = (_tmp24_ = g_strdup (self->priv->shortname), _g_free0 (_tmp23_), _tmp24_);
+				_tmp37_ = string_contains (command[i], "$shortname");
+				if (_tmp37_) {
+					gchar* _tmp38_;
+					gchar* _tmp39_;
+					gchar* _tmp41_ = NULL;
+					gchar* _tmp42_;
+					_tmp38_ = g_strdup (base_shortname);
+					_tmp39_ = _tmp38_;
+					if (_tmp39_ == NULL) {
+						gchar* _tmp40_;
+						_tmp40_ = g_strdup (self->priv->shortname);
+						_g_free0 (_tmp39_);
+						_tmp39_ = _tmp40_;
 					}
-					command[i] = (_tmp25_ = string_replace (command[i], "$shortname", _tmp23_), _g_free0 (command[i]), _tmp25_);
-					_g_free0 (_tmp23_);
+					_tmp41_ = string_replace (command[i], "$shortname", _tmp39_);
+					_tmp42_ = _tmp41_;
+					_g_free0 (command[i]);
+					command[i] = _tmp42_;
+					_g_free0 (_tmp39_);
 					continue;
 				}
 			}
 		}
 	}
-	result = (_tmp26_ = command, *result_length1 = command_length1, _tmp26_);
+	_tmp43_ = command;
+	if (result_length1) {
+		*result_length1 = command_length1;
+	}
+	result = _tmp43_;
 	_g_free0 (base_shortname);
 	_g_free0 (base_filename);
 	return result;
-	command = (_vala_array_free (command, command_length1, (GDestroyNotify) g_free), NULL);
-	_g_free0 (base_shortname);
-	_g_free0 (base_filename);
 }
 
 
@@ -1141,7 +1311,8 @@ static void build_tool_runner_failed (BuildToolRunner* self) {
 				if (!(i < self->priv->job_partitions_length1)) {
 					break;
 				}
-				build_view_set_partition_state (self->priv->view, (_tmp1_ = self->priv->job_partitions[i], &_tmp1_), PARTITION_STATE_ABORTED);
+				_tmp1_ = self->priv->job_partitions[i];
+				build_view_set_partition_state (self->priv->view, &_tmp1_, PARTITION_STATE_ABORTED);
 			}
 		}
 	}
@@ -1159,13 +1330,16 @@ static void build_tool_runner_class_init (BuildToolRunnerClass * klass) {
 
 static void build_tool_runner_instance_init (BuildToolRunner * self) {
 	guint* _tmp0_ = NULL;
+	gchar* _tmp1_;
 	self->priv = BUILD_TOOL_RUNNER_GET_PRIVATE (self);
 	self->priv->child_pid = NULL;
-	self->priv->handlers = (_tmp0_ = g_new0 (guint, 0), _tmp0_);
+	_tmp0_ = g_new0 (guint, 0);
+	self->priv->handlers = _tmp0_;
 	self->priv->handlers_length1 = 0;
 	self->priv->_handlers_size_ = self->priv->handlers_length1;
 	self->priv->read_output = TRUE;
-	self->priv->output = g_strdup ("");
+	_tmp1_ = g_strdup ("");
+	self->priv->output = _tmp1_;
 	self->priv->job_num = 0;
 }
 
@@ -1231,16 +1405,4 @@ static gint _vala_array_length (gpointer array) {
 }
 
 
-static int _vala_strcmp0 (const char * str1, const char * str2) {
-	if (str1 == NULL) {
-		return -(str1 != str2);
-	}
-	if (str2 == NULL) {
-		return str1 != str2;
-	}
-	return strcmp (str1, str2);
-}
-
-
-
 
diff --git a/src/C/build_view.c b/src/C/build_view.c
index 78cae11..e33bd76 100644
--- a/src/C/build_view.c
+++ b/src/C/build_view.c
@@ -1,4 +1,4 @@
-/* build_view.c generated by valac 0.10.3, the Vala compiler
+/* build_view.c generated by valac 0.12.1, the Vala compiler
  * generated from build_view.vala, do not modify */
 
 /*
@@ -97,9 +97,9 @@ typedef enum  {
 } BuildMessageType;
 
 struct _BuildIssue {
-	char* message;
+	gchar* message;
 	BuildMessageType message_type;
-	char* filename;
+	gchar* filename;
 	gint start_line;
 	gint end_line;
 };
@@ -154,26 +154,25 @@ BuildView* build_view_new (MainWindow* main_window, GtkToolbar* toolbar, GtkTogg
 BuildView* build_view_construct (GType object_type, MainWindow* main_window, GtkToolbar* toolbar, GtkToggleAction* view_bottom_panel);
 static gboolean build_view_on_row_selection (BuildView* self, GtkTreeSelection* selection, GtkTreeModel* model, GtkTreePath* path, gboolean path_currently_selected);
 static gboolean _build_view_on_row_selection_gtk_tree_selection_func (GtkTreeSelection* selection, GtkTreeModel* model, GtkTreePath* path, gboolean path_currently_selected, gpointer self);
-static void _lambda45_ (BuildView* self);
-static void __lambda45__gtk_button_clicked (GtkButton* _sender, gpointer self);
+static void _lambda46_ (BuildView* self);
+static void __lambda46__gtk_button_clicked (GtkButton* _sender, gpointer self);
 GtkWidget* utils_add_scrollbar (GtkWidget* child);
-static void build_view_jump_to_file (BuildView* self, const char* filename, gint start_line, gint end_line);
+static void build_view_jump_to_file (BuildView* self, const gchar* filename, gint start_line, gint end_line);
 GType document_tab_get_type (void) G_GNUC_CONST;
 DocumentTab* main_window_open_document (MainWindow* self, GFile* location);
 GType document_get_type (void) G_GNUC_CONST;
 Document* document_tab_get_document (DocumentTab* self);
 void document_select_lines (Document* self, gint start, gint end);
 void build_view_clear (BuildView* self);
-void build_view_add_partition (BuildView* self, const char* msg, PartitionState state, GtkTreeIter* parent, gboolean bold, GtkTreeIter* result);
-static char* build_view_get_icon_from_state (BuildView* self, PartitionState state);
+void build_view_add_partition (BuildView* self, const gchar* msg, PartitionState state, GtkTreeIter* parent, gboolean bold, GtkTreeIter* result);
+static gchar* build_view_get_icon_from_state (BuildView* self, PartitionState state);
 void build_view_set_partition_state (BuildView* self, GtkTreeIter* partition_id, PartitionState state);
 void build_view_append_issues (BuildView* self, GtkTreeIter* partition_id, BuildIssue* issues, int issues_length1);
-static char* build_view_get_icon_from_msg_type (BuildView* self, BuildMessageType type);
+static gchar* build_view_get_icon_from_msg_type (BuildView* self, BuildMessageType type);
 void build_view_show (BuildView* self);
 static void build_view_finalize (GObject* obj);
 
 
-
 GType partition_state_get_type (void) {
 	static volatile gsize partition_state_type_id__volatile = 0;
 	if (g_once_init_enter (&partition_state_type_id__volatile)) {
@@ -208,8 +207,8 @@ void build_issue_copy (const BuildIssue* self, BuildIssue* dest) {
 
 
 void build_issue_destroy (BuildIssue* self) {
-	_g_free0 (self->message);
-	_g_free0 (self->filename);
+	_g_free0 ((*self).message);
+	_g_free0 ((*self).filename);
 }
 
 
@@ -262,71 +261,108 @@ static gboolean _build_view_on_row_selection_gtk_tree_selection_func (GtkTreeSel
 }
 
 
-static void _lambda45_ (BuildView* self) {
+static void _lambda46_ (BuildView* self) {
 	gtk_widget_hide ((GtkWidget*) self);
 	gtk_toggle_action_set_active (self->priv->action_view_bottom_panel, FALSE);
 }
 
 
-static void __lambda45__gtk_button_clicked (GtkButton* _sender, gpointer self) {
-	_lambda45_ (self);
+static void __lambda46__gtk_button_clicked (GtkButton* _sender, gpointer self) {
+	_lambda46_ (self);
 }
 
 
 BuildView* build_view_construct (GType object_type, MainWindow* main_window, GtkToolbar* toolbar, GtkToggleAction* view_bottom_panel) {
-	BuildView * self;
-	GtkTreeStore* _tmp0_;
-	GtkTreeView* _tmp1_;
+	BuildView * self = NULL;
+	GtkTreeStore* _tmp0_ = NULL;
+	GtkTreeView* _tmp1_ = NULL;
+	GtkTreeViewColumn* _tmp2_ = NULL;
 	GtkTreeViewColumn* column_job;
+	const gchar* _tmp3_ = NULL;
+	GtkCellRendererPixbuf* _tmp4_ = NULL;
 	GtkCellRendererPixbuf* renderer_pixbuf;
+	GtkCellRendererText* _tmp5_ = NULL;
 	GtkCellRendererText* renderer_text;
-	GtkCellRendererText* _tmp2_;
-	GtkCellRendererText* _tmp3_;
+	const gchar* _tmp6_ = NULL;
+	GtkCellRendererText* _tmp7_ = NULL;
+	GtkCellRendererText* _tmp8_;
+	const gchar* _tmp9_ = NULL;
+	GtkCellRendererText* _tmp10_ = NULL;
+	GtkCellRendererText* _tmp11_;
+	GtkTreeSelection* _tmp12_ = NULL;
+	GtkTreeSelection* _tmp13_;
 	GtkTreeSelection* select;
+	GtkButton* _tmp14_ = NULL;
 	GtkButton* close_button;
-	GtkImage* _tmp4_;
+	const gchar* _tmp15_ = NULL;
+	GtkImage* _tmp16_ = NULL;
+	GtkImage* _tmp17_;
+	GtkWidget* _tmp18_ = NULL;
 	GtkWidget* sw;
+	GtkVBox* _tmp19_ = NULL;
 	GtkVBox* vbox;
 	g_return_val_if_fail (main_window != NULL, NULL);
 	g_return_val_if_fail (toolbar != NULL, NULL);
 	g_return_val_if_fail (view_bottom_panel != NULL, NULL);
-	self = g_object_newv (object_type, 0, NULL);
+	self = (BuildView*) g_object_new (object_type, NULL);
 	self->priv->main_window = main_window;
 	self->priv->action_view_bottom_panel = view_bottom_panel;
-	self->priv->store = (_tmp0_ = gtk_tree_store_new ((gint) BUILD_VIEW_BUILD_INFO_N_COLUMNS, G_TYPE_STRING, G_TYPE_STRING, TYPE_BUILD_MESSAGE_TYPE, G_TYPE_INT, G_TYPE_STRING, G_TYPE_STRING, G_TYPE_INT, G_TYPE_INT, G_TYPE_STRING), _g_object_unref0 (self->priv->store), _tmp0_);
-	self->priv->view = (_tmp1_ = g_object_ref_sink ((GtkTreeView*) gtk_tree_view_new_with_model ((GtkTreeModel*) self->priv->store)), _g_object_unref0 (self->priv->view), _tmp1_);
-	column_job = g_object_ref_sink (gtk_tree_view_column_new ());
-	gtk_tree_view_column_set_title (column_job, _ ("Job"));
-	renderer_pixbuf = g_object_ref_sink ((GtkCellRendererPixbuf*) gtk_cell_renderer_pixbuf_new ());
+	_tmp0_ = gtk_tree_store_new ((gint) BUILD_VIEW_BUILD_INFO_N_COLUMNS, G_TYPE_STRING, G_TYPE_STRING, TYPE_BUILD_MESSAGE_TYPE, G_TYPE_INT, G_TYPE_STRING, G_TYPE_STRING, G_TYPE_INT, G_TYPE_INT, G_TYPE_STRING);
+	_g_object_unref0 (self->priv->store);
+	self->priv->store = _tmp0_;
+	_tmp1_ = (GtkTreeView*) gtk_tree_view_new_with_model ((GtkTreeModel*) self->priv->store);
+	_g_object_unref0 (self->priv->view);
+	self->priv->view = g_object_ref_sink (_tmp1_);
+	_tmp2_ = gtk_tree_view_column_new ();
+	column_job = g_object_ref_sink (_tmp2_);
+	_tmp3_ = _ ("Job");
+	gtk_tree_view_column_set_title (column_job, _tmp3_);
+	_tmp4_ = (GtkCellRendererPixbuf*) gtk_cell_renderer_pixbuf_new ();
+	renderer_pixbuf = g_object_ref_sink (_tmp4_);
 	gtk_cell_layout_pack_start ((GtkCellLayout*) column_job, (GtkCellRenderer*) renderer_pixbuf, FALSE);
 	gtk_cell_layout_add_attribute ((GtkCellLayout*) column_job, (GtkCellRenderer*) renderer_pixbuf, "stock-id", (gint) BUILD_VIEW_BUILD_INFO_ICON);
-	renderer_text = g_object_ref_sink ((GtkCellRendererText*) gtk_cell_renderer_text_new ());
+	_tmp5_ = (GtkCellRendererText*) gtk_cell_renderer_text_new ();
+	renderer_text = g_object_ref_sink (_tmp5_);
 	g_object_set (renderer_text, "weight-set", TRUE, NULL);
 	gtk_cell_layout_pack_start ((GtkCellLayout*) column_job, (GtkCellRenderer*) renderer_text, TRUE);
 	gtk_cell_layout_add_attribute ((GtkCellLayout*) column_job, (GtkCellRenderer*) renderer_text, "text", (gint) BUILD_VIEW_BUILD_INFO_MESSAGE);
 	gtk_cell_layout_add_attribute ((GtkCellLayout*) column_job, (GtkCellRenderer*) renderer_text, "weight", (gint) BUILD_VIEW_BUILD_INFO_WEIGHT);
 	gtk_tree_view_append_column (self->priv->view, column_job);
-	gtk_tree_view_insert_column_with_attributes (self->priv->view, -1, _ ("File"), (GtkCellRenderer*) (_tmp2_ = g_object_ref_sink ((GtkCellRendererText*) gtk_cell_renderer_text_new ())), "text", BUILD_VIEW_BUILD_INFO_BASENAME, NULL);
-	_g_object_unref0 (_tmp2_);
-	gtk_tree_view_insert_column_with_attributes (self->priv->view, -1, _ ("Line"), (GtkCellRenderer*) (_tmp3_ = g_object_ref_sink ((GtkCellRendererText*) gtk_cell_renderer_text_new ())), "text", BUILD_VIEW_BUILD_INFO_LINE, NULL);
-	_g_object_unref0 (_tmp3_);
+	_tmp6_ = _ ("File");
+	_tmp7_ = (GtkCellRendererText*) gtk_cell_renderer_text_new ();
+	_tmp8_ = g_object_ref_sink (_tmp7_);
+	gtk_tree_view_insert_column_with_attributes (self->priv->view, -1, _tmp6_, (GtkCellRenderer*) _tmp8_, "text", BUILD_VIEW_BUILD_INFO_BASENAME, NULL);
+	_g_object_unref0 (_tmp8_);
+	_tmp9_ = _ ("Line");
+	_tmp10_ = (GtkCellRendererText*) gtk_cell_renderer_text_new ();
+	_tmp11_ = g_object_ref_sink (_tmp10_);
+	gtk_tree_view_insert_column_with_attributes (self->priv->view, -1, _tmp9_, (GtkCellRenderer*) _tmp11_, "text", BUILD_VIEW_BUILD_INFO_LINE, NULL);
+	_g_object_unref0 (_tmp11_);
 	gtk_tree_view_set_tooltip_column (self->priv->view, (gint) BUILD_VIEW_BUILD_INFO_FILENAME);
-	select = _g_object_ref0 (gtk_tree_view_get_selection (self->priv->view));
+	_tmp12_ = gtk_tree_view_get_selection (self->priv->view);
+	_tmp13_ = _g_object_ref0 (_tmp12_);
+	select = _tmp13_;
 	gtk_tree_selection_set_mode (select, GTK_SELECTION_SINGLE);
 	gtk_tree_selection_set_select_function (select, _build_view_on_row_selection_gtk_tree_selection_func, g_object_ref (self), g_object_unref);
-	close_button = g_object_ref_sink ((GtkButton*) gtk_button_new ());
+	_tmp14_ = (GtkButton*) gtk_button_new ();
+	close_button = g_object_ref_sink (_tmp14_);
 	gtk_button_set_relief (close_button, GTK_RELIEF_NONE);
 	gtk_button_set_focus_on_click (close_button, FALSE);
-	gtk_widget_set_tooltip_text ((GtkWidget*) close_button, _ ("Hide panel"));
-	gtk_container_add ((GtkContainer*) close_button, (GtkWidget*) (_tmp4_ = g_object_ref_sink ((GtkImage*) gtk_image_new_from_stock (GTK_STOCK_CLOSE, GTK_ICON_SIZE_MENU))));
-	_g_object_unref0 (_tmp4_);
-	g_signal_connect_object (close_button, "clicked", (GCallback) __lambda45__gtk_button_clicked, self, 0);
-	sw = utils_add_scrollbar ((GtkWidget*) self->priv->view);
-	gtk_box_pack_start ((GtkBox*) self, sw, TRUE, TRUE, 0);
-	vbox = g_object_ref_sink ((GtkVBox*) gtk_vbox_new (FALSE, 0));
-	gtk_box_pack_start ((GtkBox*) vbox, (GtkWidget*) close_button, FALSE, FALSE, 0);
-	gtk_box_pack_start ((GtkBox*) vbox, (GtkWidget*) toolbar, TRUE, TRUE, 0);
-	gtk_box_pack_start ((GtkBox*) self, (GtkWidget*) vbox, FALSE, FALSE, 0);
+	_tmp15_ = _ ("Hide panel");
+	gtk_widget_set_tooltip_text ((GtkWidget*) close_button, _tmp15_);
+	_tmp16_ = (GtkImage*) gtk_image_new_from_stock (GTK_STOCK_CLOSE, GTK_ICON_SIZE_MENU);
+	_tmp17_ = g_object_ref_sink (_tmp16_);
+	gtk_container_add ((GtkContainer*) close_button, (GtkWidget*) _tmp17_);
+	_g_object_unref0 (_tmp17_);
+	g_signal_connect_object (close_button, "clicked", (GCallback) __lambda46__gtk_button_clicked, self, 0);
+	_tmp18_ = utils_add_scrollbar ((GtkWidget*) self->priv->view);
+	sw = _tmp18_;
+	gtk_box_pack_start ((GtkBox*) self, sw, TRUE, TRUE, (guint) 0);
+	_tmp19_ = (GtkVBox*) gtk_vbox_new (FALSE, 0);
+	vbox = g_object_ref_sink (_tmp19_);
+	gtk_box_pack_start ((GtkBox*) vbox, (GtkWidget*) close_button, FALSE, FALSE, (guint) 0);
+	gtk_box_pack_start ((GtkBox*) vbox, (GtkWidget*) toolbar, TRUE, TRUE, (guint) 0);
+	gtk_box_pack_start ((GtkBox*) self, (GtkWidget*) vbox, FALSE, FALSE, (guint) 0);
 	_g_object_unref0 (vbox);
 	_g_object_unref0 (sw);
 	_g_object_unref0 (close_button);
@@ -343,49 +379,50 @@ BuildView* build_view_new (MainWindow* main_window, GtkToolbar* toolbar, GtkTogg
 }
 
 
-static glong string_get_length (const char* self) {
-	glong result;
-	g_return_val_if_fail (self != NULL, 0L);
-	result = g_utf8_strlen (self, (gssize) (-1));
-	return result;
-}
-
-
 static gboolean build_view_on_row_selection (BuildView* self, GtkTreeSelection* selection, GtkTreeModel* model, GtkTreePath* path, gboolean path_currently_selected) {
 	gboolean result = FALSE;
 	GtkTreeIter iter = {0};
+	GtkTreeIter _tmp0_ = {0};
+	gboolean _tmp1_;
 	g_return_val_if_fail (self != NULL, FALSE);
 	g_return_val_if_fail (selection != NULL, FALSE);
 	g_return_val_if_fail (model != NULL, FALSE);
 	g_return_val_if_fail (path != NULL, FALSE);
-	if (gtk_tree_model_get_iter (model, &iter, path)) {
+	_tmp1_ = gtk_tree_model_get_iter (model, &_tmp0_, path);
+	iter = _tmp0_;
+	if (_tmp1_) {
 		BuildMessageType msg_type = 0;
-		char* filename;
+		gchar* filename = NULL;
 		gint start_line = 0;
 		gint end_line = 0;
-		gboolean _tmp0_ = FALSE;
-		gboolean _tmp1_ = FALSE;
-		filename = NULL;
+		gboolean _tmp2_ = FALSE;
+		gboolean _tmp3_ = FALSE;
 		gtk_tree_model_get (model, &iter, BUILD_VIEW_BUILD_INFO_MESSAGE_TYPE, &msg_type, BUILD_VIEW_BUILD_INFO_FILENAME, &filename, BUILD_VIEW_BUILD_INFO_START_LINE, &start_line, BUILD_VIEW_BUILD_INFO_END_LINE, &end_line, -1, -1);
 		if (msg_type != BUILD_MESSAGE_TYPE_OTHER) {
-			_tmp1_ = filename != NULL;
+			_tmp3_ = filename != NULL;
 		} else {
-			_tmp1_ = FALSE;
+			_tmp3_ = FALSE;
 		}
-		if (_tmp1_) {
-			_tmp0_ = string_get_length (filename) > 0;
+		if (_tmp3_) {
+			gint _tmp4_;
+			_tmp4_ = strlen (filename);
+			_tmp2_ = _tmp4_ > 0;
 		} else {
-			_tmp0_ = FALSE;
+			_tmp2_ = FALSE;
 		}
-		if (_tmp0_) {
+		if (_tmp2_) {
 			build_view_jump_to_file (self, filename, start_line, end_line);
 			result = TRUE;
 			_g_free0 (filename);
 			return result;
 		} else {
 			if (msg_type == BUILD_MESSAGE_TYPE_OTHER) {
-				if (gtk_tree_model_iter_has_child (model, &iter)) {
-					if (gtk_tree_view_row_expanded (self->priv->view, path)) {
+				gboolean _tmp5_;
+				_tmp5_ = gtk_tree_model_iter_has_child (model, &iter);
+				if (_tmp5_) {
+					gboolean _tmp6_;
+					_tmp6_ = gtk_tree_view_row_expanded (self->priv->view, path);
+					if (_tmp6_) {
 						gtk_tree_view_collapse_row (self->priv->view, path);
 					} else {
 						gtk_tree_view_expand_to_path (self->priv->view, path);
@@ -400,23 +437,29 @@ static gboolean build_view_on_row_selection (BuildView* self, GtkTreeSelection*
 }
 
 
-static void build_view_jump_to_file (BuildView* self, const char* filename, gint start_line, gint end_line) {
+static void build_view_jump_to_file (BuildView* self, const gchar* filename, gint start_line, gint end_line) {
+	GFile* _tmp0_ = NULL;
 	GFile* file;
+	DocumentTab* _tmp1_ = NULL;
 	DocumentTab* tab;
 	g_return_if_fail (self != NULL);
 	g_return_if_fail (filename != NULL);
-	file = g_file_new_for_path (filename);
-	tab = main_window_open_document (self->priv->main_window, file);
+	_tmp0_ = g_file_new_for_path (filename);
+	file = _tmp0_;
+	_tmp1_ = main_window_open_document (self->priv->main_window, file);
+	tab = _tmp1_;
 	if (start_line != (-1)) {
-		gint _tmp0_ = 0;
+		gint _tmp2_ = 0;
 		gint end;
+		Document* _tmp3_ = NULL;
 		if (end_line != (-1)) {
-			_tmp0_ = end_line - 1;
+			_tmp2_ = end_line - 1;
 		} else {
-			_tmp0_ = start_line;
+			_tmp2_ = start_line;
 		}
-		end = _tmp0_;
-		document_select_lines (document_tab_get_document (tab), start_line - 1, end);
+		end = _tmp2_;
+		_tmp3_ = document_tab_get_document (tab);
+		document_select_lines (_tmp3_, start_line - 1, end);
 	}
 	_g_object_unref0 (tab);
 	_g_object_unref0 (file);
@@ -430,20 +473,25 @@ void build_view_clear (BuildView* self) {
 }
 
 
-void build_view_add_partition (BuildView* self, const char* msg, PartitionState state, GtkTreeIter* parent, gboolean bold, GtkTreeIter* result) {
+void build_view_add_partition (BuildView* self, const gchar* msg, PartitionState state, GtkTreeIter* parent, gboolean bold, GtkTreeIter* result) {
 	GtkTreeIter iter = {0};
-	gint _tmp0_ = 0;
-	char* _tmp1_;
+	GtkTreeIter _tmp0_ = {0};
+	gint _tmp1_ = 0;
+	gchar* _tmp2_ = NULL;
+	gchar* _tmp3_;
 	g_return_if_fail (self != NULL);
 	g_return_if_fail (msg != NULL);
-	gtk_tree_store_append (self->priv->store, &iter, parent);
+	gtk_tree_store_append (self->priv->store, &_tmp0_, parent);
+	iter = _tmp0_;
 	if (bold) {
-		_tmp0_ = 800;
+		_tmp1_ = 800;
 	} else {
-		_tmp0_ = 400;
+		_tmp1_ = 400;
 	}
-	gtk_tree_store_set (self->priv->store, &iter, BUILD_VIEW_BUILD_INFO_ICON, _tmp1_ = build_view_get_icon_from_state (self, state), BUILD_VIEW_BUILD_INFO_MESSAGE, msg, BUILD_VIEW_BUILD_INFO_MESSAGE_TYPE, BUILD_MESSAGE_TYPE_OTHER, BUILD_VIEW_BUILD_INFO_WEIGHT, _tmp0_, -1, -1);
-	_g_free0 (_tmp1_);
+	_tmp2_ = build_view_get_icon_from_state (self, state);
+	_tmp3_ = _tmp2_;
+	gtk_tree_store_set (self->priv->store, &iter, BUILD_VIEW_BUILD_INFO_ICON, _tmp3_, BUILD_VIEW_BUILD_INFO_MESSAGE, msg, BUILD_VIEW_BUILD_INFO_MESSAGE_TYPE, BUILD_MESSAGE_TYPE_OTHER, BUILD_VIEW_BUILD_INFO_WEIGHT, _tmp1_, -1, -1);
+	_g_free0 (_tmp3_);
 	gtk_tree_view_expand_all (self->priv->view);
 	*result = iter;
 	return;
@@ -451,10 +499,13 @@ void build_view_add_partition (BuildView* self, const char* msg, PartitionState
 
 
 void build_view_set_partition_state (BuildView* self, GtkTreeIter* partition_id, PartitionState state) {
-	char* _tmp0_;
+	gchar* _tmp0_ = NULL;
+	gchar* _tmp1_;
 	g_return_if_fail (self != NULL);
-	gtk_tree_store_set (self->priv->store, partition_id, BUILD_VIEW_BUILD_INFO_ICON, _tmp0_ = build_view_get_icon_from_state (self, state), -1, -1);
-	_g_free0 (_tmp0_);
+	_tmp0_ = build_view_get_icon_from_state (self, state);
+	_tmp1_ = _tmp0_;
+	gtk_tree_store_set (self->priv->store, partition_id, BUILD_VIEW_BUILD_INFO_ICON, _tmp1_, -1, -1);
+	_g_free0 (_tmp1_);
 }
 
 
@@ -467,35 +518,45 @@ void build_view_append_issues (BuildView* self, GtkTreeIter* partition_id, Build
 		issue_collection = issues;
 		issue_collection_length1 = issues_length1;
 		for (issue_it = 0; issue_it < issues_length1; issue_it = issue_it + 1) {
-			BuildIssue _tmp7_ = {0};
+			BuildIssue _tmp0_;
+			BuildIssue _tmp1_ = {0};
 			BuildIssue issue;
-			issue = (build_issue_copy (&issue_collection[issue_it], &_tmp7_), _tmp7_);
+			build_issue_copy (&issue_collection[issue_it], &_tmp1_);
+			_tmp0_ = _tmp1_;
+			issue = _tmp0_;
 			{
 				GtkTreeIter iter = {0};
-				char* _tmp0_;
-				char* _tmp3_;
-				char* _tmp6_;
-				gtk_tree_store_append (self->priv->store, &iter, partition_id);
-				_tmp0_ = NULL;
+				GtkTreeIter _tmp2_ = {0};
+				gchar* _tmp3_ = NULL;
+				gchar* _tmp5_ = NULL;
+				gchar* _tmp7_ = NULL;
+				gchar* _tmp8_;
+				gtk_tree_store_append (self->priv->store, &_tmp2_, partition_id);
+				iter = _tmp2_;
 				if (issue.filename != NULL) {
-					char* _tmp1_;
-					_tmp0_ = (_tmp1_ = g_path_get_basename (issue.filename), _g_free0 (_tmp0_), _tmp1_);
+					gchar* _tmp4_ = NULL;
+					_tmp4_ = g_path_get_basename (issue.filename);
+					_g_free0 (_tmp3_);
+					_tmp3_ = _tmp4_;
 				} else {
-					char* _tmp2_;
-					_tmp0_ = (_tmp2_ = NULL, _g_free0 (_tmp0_), _tmp2_);
+					_g_free0 (_tmp3_);
+					_tmp3_ = NULL;
 				}
-				_tmp3_ = NULL;
 				if (issue.start_line != (-1)) {
-					char* _tmp4_;
-					_tmp3_ = (_tmp4_ = g_strdup_printf ("%i", issue.start_line), _g_free0 (_tmp3_), _tmp4_);
+					gchar* _tmp6_ = NULL;
+					_tmp6_ = g_strdup_printf ("%i", issue.start_line);
+					_g_free0 (_tmp5_);
+					_tmp5_ = _tmp6_;
 				} else {
-					char* _tmp5_;
-					_tmp3_ = (_tmp5_ = NULL, _g_free0 (_tmp3_), _tmp5_);
+					_g_free0 (_tmp5_);
+					_tmp5_ = NULL;
 				}
-				gtk_tree_store_set (self->priv->store, &iter, BUILD_VIEW_BUILD_INFO_ICON, _tmp6_ = build_view_get_icon_from_msg_type (self, issue.message_type), BUILD_VIEW_BUILD_INFO_MESSAGE, issue.message, BUILD_VIEW_BUILD_INFO_MESSAGE_TYPE, issue.message_type, BUILD_VIEW_BUILD_INFO_WEIGHT, 400, BUILD_VIEW_BUILD_INFO_BASENAME, _tmp0_, BUILD_VIEW_BUILD_INFO_FILENAME, issue.filename, BUILD_VIEW_BUILD_INFO_START_LINE, issue.start_line, BUILD_VIEW_BUILD_INFO_END_LINE, issue.end_line, BUILD_VIEW_BUILD_INFO_LINE, _tmp3_, -1, -1);
-				_g_free0 (_tmp6_);
+				_tmp7_ = build_view_get_icon_from_msg_type (self, issue.message_type);
+				_tmp8_ = _tmp7_;
+				gtk_tree_store_set (self->priv->store, &iter, BUILD_VIEW_BUILD_INFO_ICON, _tmp8_, BUILD_VIEW_BUILD_INFO_MESSAGE, issue.message, BUILD_VIEW_BUILD_INFO_MESSAGE_TYPE, issue.message_type, BUILD_VIEW_BUILD_INFO_WEIGHT, 400, BUILD_VIEW_BUILD_INFO_BASENAME, _tmp3_, BUILD_VIEW_BUILD_INFO_FILENAME, issue.filename, BUILD_VIEW_BUILD_INFO_START_LINE, issue.start_line, BUILD_VIEW_BUILD_INFO_END_LINE, issue.end_line, BUILD_VIEW_BUILD_INFO_LINE, _tmp5_, -1, -1);
+				_g_free0 (_tmp8_);
+				_g_free0 (_tmp5_);
 				_g_free0 (_tmp3_);
-				_g_free0 (_tmp0_);
 				build_issue_destroy (&issue);
 			}
 		}
@@ -504,28 +565,36 @@ void build_view_append_issues (BuildView* self, GtkTreeIter* partition_id, Build
 }
 
 
-static char* build_view_get_icon_from_state (BuildView* self, PartitionState state) {
-	char* result = NULL;
+static gchar* build_view_get_icon_from_state (BuildView* self, PartitionState state) {
+	gchar* result = NULL;
 	g_return_val_if_fail (self != NULL, NULL);
 	switch (state) {
 		case PARTITION_STATE_RUNNING:
 		{
-			result = g_strdup (GTK_STOCK_EXECUTE);
+			gchar* _tmp0_;
+			_tmp0_ = g_strdup (GTK_STOCK_EXECUTE);
+			result = _tmp0_;
 			return result;
 		}
 		case PARTITION_STATE_SUCCEEDED:
 		{
-			result = g_strdup (GTK_STOCK_APPLY);
+			gchar* _tmp1_;
+			_tmp1_ = g_strdup (GTK_STOCK_APPLY);
+			result = _tmp1_;
 			return result;
 		}
 		case PARTITION_STATE_FAILED:
 		{
-			result = g_strdup (GTK_STOCK_DIALOG_ERROR);
+			gchar* _tmp2_;
+			_tmp2_ = g_strdup (GTK_STOCK_DIALOG_ERROR);
+			result = _tmp2_;
 			return result;
 		}
 		case PARTITION_STATE_ABORTED:
 		{
-			result = g_strdup (GTK_STOCK_STOP);
+			gchar* _tmp3_;
+			_tmp3_ = g_strdup (GTK_STOCK_STOP);
+			result = _tmp3_;
 			return result;
 		}
 		default:
@@ -536,23 +605,29 @@ static char* build_view_get_icon_from_state (BuildView* self, PartitionState sta
 }
 
 
-static char* build_view_get_icon_from_msg_type (BuildView* self, BuildMessageType type) {
-	char* result = NULL;
+static gchar* build_view_get_icon_from_msg_type (BuildView* self, BuildMessageType type) {
+	gchar* result = NULL;
 	g_return_val_if_fail (self != NULL, NULL);
 	switch (type) {
 		case BUILD_MESSAGE_TYPE_ERROR:
 		{
-			result = g_strdup (GTK_STOCK_DIALOG_ERROR);
+			gchar* _tmp0_;
+			_tmp0_ = g_strdup (GTK_STOCK_DIALOG_ERROR);
+			result = _tmp0_;
 			return result;
 		}
 		case BUILD_MESSAGE_TYPE_WARNING:
 		{
-			result = g_strdup (GTK_STOCK_DIALOG_WARNING);
+			gchar* _tmp1_;
+			_tmp1_ = g_strdup (GTK_STOCK_DIALOG_WARNING);
+			result = _tmp1_;
 			return result;
 		}
 		case BUILD_MESSAGE_TYPE_BADBOX:
 		{
-			result = g_strdup ("badbox");
+			gchar* _tmp2_;
+			_tmp2_ = g_strdup ("badbox");
+			result = _tmp2_;
 			return result;
 		}
 		case BUILD_MESSAGE_TYPE_OTHER:
@@ -609,4 +684,3 @@ GType build_view_get_type (void) {
 
 
 
-
diff --git a/src/C/completion.c b/src/C/completion.c
index ab69a8d..ee8aa80 100644
--- a/src/C/completion.c
+++ b/src/C/completion.c
@@ -1,4 +1,4 @@
-/* completion.c generated by valac 0.10.3, the Vala compiler
+/* completion.c generated by valac 0.12.1, the Vala compiler
  * generated from completion.vala, do not modify */
 
 /*
@@ -54,7 +54,7 @@ typedef struct _CompletionProviderPrivate CompletionProviderPrivate;
 typedef struct _CompletionProviderCompletionChoice CompletionProviderCompletionChoice;
 typedef struct _CompletionProviderCompletionArgument CompletionProviderCompletionArgument;
 typedef struct _CompletionProviderCompletionCommand CompletionProviderCompletionCommand;
-#define __g_list_free_g_object_unref0(var) ((var == NULL) ? NULL : (var = (_g_list_free_g_object_unref (var), NULL)))
+#define __g_list_free__g_object_unref0_0(var) ((var == NULL) ? NULL : (var = (_g_list_free__g_object_unref0_ (var), NULL)))
 #define _g_object_unref0(var) ((var == NULL) ? NULL : (var = (g_object_unref (var), NULL)))
 #define _g_free0(var) (var = (g_free (var), NULL))
 #define _g_markup_parse_context_free0(var) ((var == NULL) ? NULL : (var = (g_markup_parse_context_free (var), NULL)))
@@ -91,6 +91,7 @@ typedef struct _DocumentTabClass DocumentTabClass;
 
 typedef struct _DocumentView DocumentView;
 typedef struct _DocumentViewClass DocumentViewClass;
+#define _completion_provider_completion_choice_free0(var) ((var == NULL) ? NULL : (var = (completion_provider_completion_choice_free (var), NULL)))
 
 #define TYPE_APPLICATION (application_get_type ())
 #define APPLICATION(obj) (G_TYPE_CHECK_INSTANCE_CAST ((obj), TYPE_APPLICATION, Application))
@@ -123,12 +124,14 @@ struct _CompletionProviderClass {
 };
 
 struct _CompletionProviderCompletionChoice {
-	char* name;
-	char* package;
+	gchar* name;
+	gchar* package;
+	gchar* insert;
+	gchar* insert_after;
 };
 
 struct _CompletionProviderCompletionArgument {
-	char* label;
+	gchar* label;
 	gboolean optional;
 	CompletionProviderCompletionChoice* choices;
 	gint choices_length1;
@@ -136,8 +139,8 @@ struct _CompletionProviderCompletionArgument {
 };
 
 struct _CompletionProviderCompletionCommand {
-	char* name;
-	char* package;
+	gchar* name;
+	gchar* package;
 	CompletionProviderCompletionArgument* args;
 	gint args_length1;
 	gint _args_size_;
@@ -146,9 +149,11 @@ struct _CompletionProviderCompletionCommand {
 struct _CompletionProviderPrivate {
 	GList* proposals;
 	GeeHashMap* commands;
+	GeeHashMap* environments;
 	GSettings* settings;
 	CompletionProviderCompletionCommand current_command;
 	CompletionProviderCompletionArgument current_arg;
+	CompletionProviderCompletionChoice current_choice;
 	gboolean show_all_proposals;
 	GdkPixbuf* icon_normal_cmd;
 	GdkPixbuf* icon_normal_choice;
@@ -162,6 +167,7 @@ struct _Document {
 	GtkSourceBuffer parent_instance;
 	DocumentPrivate * priv;
 	DocumentTab* tab;
+	guint _unsaved_doc_num;
 };
 
 struct _DocumentClass {
@@ -169,9 +175,9 @@ struct _DocumentClass {
 };
 
 
+static gpointer completion_provider_parent_class = NULL;
 static CompletionProvider* completion_provider_instance;
 static CompletionProvider* completion_provider_instance = NULL;
-static gpointer completion_provider_parent_class = NULL;
 static GtkSourceCompletionProviderIface* completion_provider_gtk_source_completion_provider_parent_iface = NULL;
 
 GType completion_provider_get_type (void) G_GNUC_CONST;
@@ -194,17 +200,20 @@ static void completion_provider_completion_command_destroy (CompletionProviderCo
 enum  {
 	COMPLETION_PROVIDER_DUMMY_PROPERTY
 };
-static void _g_list_free_g_object_unref (GList* self);
+static void _g_object_unref0_ (gpointer var);
+static void _g_list_free__g_object_unref0_ (GList* self);
 static CompletionProvider* completion_provider_new (void);
 static CompletionProvider* completion_provider_construct (GType object_type);
-GdkPixbuf* utils_get_pixbuf_from_stock (const char* stock_id, GtkIconSize size);
-static void completion_provider_parser_start (CompletionProvider* self, GMarkupParseContext* context, const char* name, char** attr_names, int attr_names_length1, char** attr_values, int attr_values_length1, GError** error);
-static void _completion_provider_parser_start_gmarkup_parser_start_element_func (GMarkupParseContext* context, const char* element_name, char** attribute_names, char** attribute_values, gpointer self, GError** error);
-static void completion_provider_parser_end (CompletionProvider* self, GMarkupParseContext* context, const char* name, GError** error);
-static void _completion_provider_parser_end_gmarkup_parser_end_element_func (GMarkupParseContext* context, const char* element_name, gpointer self, GError** error);
+GdkPixbuf* utils_get_pixbuf_from_stock (const gchar* stock_id, GtkIconSize size);
+static void completion_provider_parser_start (CompletionProvider* self, GMarkupParseContext* context, const gchar* name, gchar** attr_names, int attr_names_length1, gchar** attr_values, int attr_values_length1, GError** error);
+static void _completion_provider_parser_start_gmarkup_parser_start_element_func (GMarkupParseContext* context, const gchar* element_name, gchar** attribute_names, gchar** attribute_values, gpointer self, GError** error);
+static void completion_provider_parser_end (CompletionProvider* self, GMarkupParseContext* context, const gchar* name, GError** error);
+static void _completion_provider_parser_end_gmarkup_parser_end_element_func (GMarkupParseContext* context, const gchar* element_name, gpointer self, GError** error);
+static void completion_provider_parser_text (CompletionProvider* self, GMarkupParseContext* context, const gchar* text, gsize text_len, GError** error);
+static void _completion_provider_parser_text_gmarkup_parser_text_func (GMarkupParseContext* context, const gchar* text, gsize text_len, gpointer self, GError** error);
 static gint completion_provider_compare_proposals (GtkSourceCompletionItem* a, GtkSourceCompletionItem* b);
 CompletionProvider* completion_provider_get_default (void);
-static char* completion_provider_real_get_name (GtkSourceCompletionProvider* base);
+static gchar* completion_provider_real_get_name (GtkSourceCompletionProvider* base);
 static GdkPixbuf* completion_provider_real_get_icon (GtkSourceCompletionProvider* base);
 static GtkSourceCompletionActivation completion_provider_real_get_activation (GtkSourceCompletionProvider* base);
 static GtkWidget* completion_provider_real_get_info_widget (GtkSourceCompletionProvider* base, GtkSourceCompletionProposal* proposal);
@@ -213,119 +222,145 @@ static gboolean completion_provider_real_get_start_iter (GtkSourceCompletionProv
 static gint completion_provider_real_get_interactive_delay (GtkSourceCompletionProvider* base);
 static gint completion_provider_real_get_priority (GtkSourceCompletionProvider* base);
 static gboolean completion_provider_real_match (GtkSourceCompletionProvider* base, GtkSourceCompletionContext* context);
-static char* completion_provider_get_latex_command_at_iter (CompletionProvider* self, GtkTextIter* iter);
-static gboolean completion_provider_in_latex_command_argument (CompletionProvider* self, GtkTextIter* iter, char** cmd_name, GeeArrayList** arguments, char** argument_contents, gboolean* valid_arg_contents);
+static gchar* completion_provider_get_latex_command_at_iter (CompletionProvider* self, GtkTextIter* iter);
+static gboolean completion_provider_in_latex_command_argument (CompletionProvider* self, GtkTextIter* iter, gchar** cmd_name, GeeArrayList** arguments, gchar** argument_contents, gboolean* valid_arg_contents);
 static void completion_provider_real_populate (GtkSourceCompletionProvider* base, GtkSourceCompletionContext* context);
 static void completion_provider_clear_context (CompletionProvider* self, GtkSourceCompletionContext* context);
 static GList* completion_provider_get_argument_proposals (CompletionProvider* self, CompletionProviderCompletionCommand* cmd, GeeArrayList* arguments);
 void completion_provider_hide_calltip_window (CompletionProvider* self);
 static gint completion_provider_get_argument_num (CompletionProvider* self, CompletionProviderCompletionArgument* all_args, int all_args_length1, GeeArrayList* args);
-static char* completion_provider_get_command_info (CompletionProvider* self, CompletionProviderCompletionCommand* cmd, gint num);
-static void completion_provider_show_calltip_info (CompletionProvider* self, const char* markup);
+static gchar* completion_provider_get_command_info (CompletionProvider* self, CompletionProviderCompletionCommand* cmd, gint num);
+static void completion_provider_show_calltip_info (CompletionProvider* self, const gchar* markup);
 static gboolean completion_provider_real_activate_proposal (GtkSourceCompletionProvider* base, GtkSourceCompletionProposal* proposal, GtkTextIter* iter);
-static void completion_provider_activate_proposal_argument_choice (CompletionProvider* self, GtkSourceCompletionProposal* proposal, GtkTextIter* iter, const char* cmd_name, const char* argument_contents);
-static void completion_provider_activate_proposal_command_name (CompletionProvider* self, GtkSourceCompletionProposal* proposal, GtkTextIter* iter, const char* cmd);
-static void completion_provider_close_environment (CompletionProvider* self, const char* env_name, GtkTextIter* iter);
+static void completion_provider_activate_proposal_argument_choice (CompletionProvider* self, GtkSourceCompletionProposal* proposal, GtkTextIter* iter, const gchar* cmd_name, const gchar* argument_contents);
+static void completion_provider_activate_proposal_command_name (CompletionProvider* self, GtkSourceCompletionProposal* proposal, GtkTextIter* iter, const gchar* cmd);
+static void completion_provider_close_environment (CompletionProvider* self, const gchar* env_name, GtkTextIter* iter);
 GType document_get_type (void) G_GNUC_CONST;
-void document_insert (Document* self, GtkTextIter* iter, const char* text, gint len);
-char* document_get_current_indentation (Document* self, gint line);
+void document_insert (Document* self, GtkTextIter* iter, const gchar* text, gint len);
+gchar* document_get_current_indentation (Document* self, gint line);
 GType document_tab_get_type (void) G_GNUC_CONST;
 GType document_view_get_type (void) G_GNUC_CONST;
 DocumentView* document_tab_get_view (DocumentTab* self);
-char* document_view_get_indentation_style (DocumentView* self);
+gchar* document_view_get_indentation_style (DocumentView* self);
 static void completion_provider_init_calltip_window (CompletionProvider* self);
 GType application_get_type (void) G_GNUC_CONST;
 Application* application_get_default (void);
 GType main_window_get_type (void) G_GNUC_CONST;
 MainWindow* application_get_active_window (Application* self);
 DocumentView* main_window_get_active_view (MainWindow* self);
-static char* completion_provider_get_text_line_at_iter (CompletionProvider* self, GtkTextIter* iter);
-static gboolean completion_provider_char_is_escaped (CompletionProvider* self, const char* text, glong index);
+static gchar* completion_provider_get_text_line_at_iter (CompletionProvider* self, GtkTextIter* iter);
+static gboolean completion_provider_char_is_escaped (CompletionProvider* self, const gchar* text, glong index);
+static gchar* completion_provider_get_command_text (CompletionProvider* self, CompletionProviderCompletionCommand* cmd);
+static void _vala_array_add12 (CompletionProviderCompletionArgument** array, int* length, int* size, const CompletionProviderCompletionArgument* value);
 static void _vala_array_add13 (CompletionProviderCompletionChoice** array, int* length, int* size, const CompletionProviderCompletionChoice* value);
-static char* completion_provider_get_command_text (CompletionProvider* self, CompletionProviderCompletionCommand* cmd);
-static void _vala_array_add14 (CompletionProviderCompletionArgument** array, int* length, int* size, const CompletionProviderCompletionArgument* value);
-static char* completion_provider_get_latex_command_at_index (CompletionProvider* self, const char* text, glong index);
+static gchar* completion_provider_get_latex_command_at_index (CompletionProvider* self, const gchar* text, glong index);
 static void _vala_CompletionProviderCompletionArgument_array_free (CompletionProviderCompletionArgument* array, gint array_length);
 static CompletionProviderCompletionArgument* _vala_array_dup6 (CompletionProviderCompletionArgument* self, int length);
 static void _vala_CompletionProviderCompletionChoice_array_free (CompletionProviderCompletionChoice* array, gint array_length);
 static CompletionProviderCompletionChoice* _vala_array_dup7 (CompletionProviderCompletionChoice* self, int length);
 static void completion_provider_finalize (GObject* obj);
 static gint _vala_array_length (gpointer array);
-static int _vala_strcmp0 (const char * str1, const char * str2);
 
 
+static void _g_object_unref0_ (gpointer var) {
+	(var == NULL) ? NULL : (var = (g_object_unref (var), NULL));
+}
+
 
-static void _g_list_free_g_object_unref (GList* self) {
-	g_list_foreach (self, (GFunc) g_object_unref, NULL);
+static void _g_list_free__g_object_unref0_ (GList* self) {
+	g_list_foreach (self, (GFunc) _g_object_unref0_, NULL);
 	g_list_free (self);
 }
 
 
-static void _completion_provider_parser_start_gmarkup_parser_start_element_func (GMarkupParseContext* context, const char* element_name, char** attribute_names, char** attribute_values, gpointer self, GError** error) {
+static void _completion_provider_parser_start_gmarkup_parser_start_element_func (GMarkupParseContext* context, const gchar* element_name, gchar** attribute_names, gchar** attribute_values, gpointer self, GError** error) {
 	completion_provider_parser_start (self, context, element_name, attribute_names, _vala_array_length (attribute_names), attribute_values, _vala_array_length (attribute_values), error);
 }
 
 
-static void _completion_provider_parser_end_gmarkup_parser_end_element_func (GMarkupParseContext* context, const char* element_name, gpointer self, GError** error) {
+static void _completion_provider_parser_end_gmarkup_parser_end_element_func (GMarkupParseContext* context, const gchar* element_name, gpointer self, GError** error) {
 	completion_provider_parser_end (self, context, element_name, error);
 }
 
 
+static void _completion_provider_parser_text_gmarkup_parser_text_func (GMarkupParseContext* context, const gchar* text, gsize text_len, gpointer self, GError** error) {
+	completion_provider_parser_text (self, context, text, text_len, error);
+}
+
+
 static CompletionProvider* completion_provider_construct (GType object_type) {
 	CompletionProvider * self = NULL;
-	GSettings* _tmp0_;
-	GeeHashMap* _tmp1_;
-	GdkPixbuf* _tmp2_;
-	GdkPixbuf* _tmp3_;
-	GdkPixbuf* _tmp4_;
+	GSettings* _tmp0_ = NULL;
+	GeeHashMap* _tmp1_ = NULL;
+	GeeHashMap* _tmp2_ = NULL;
+	GdkPixbuf* _tmp3_ = NULL;
+	GdkPixbuf* _tmp4_ = NULL;
+	GdkPixbuf* _tmp5_ = NULL;
+	GFile* _tmp6_ = NULL;
+	GFile* file;
+	gchar* contents = NULL;
+	gchar* _tmp7_ = NULL;
+	GMarkupParser _tmp8_ = {0};
+	GMarkupParser parser;
+	GMarkupParseContext* _tmp9_ = NULL;
+	GMarkupParseContext* context;
 	GError * _inner_error_ = NULL;
 	self = (CompletionProvider*) g_object_new (object_type, NULL);
-	self->priv->settings = (_tmp0_ = g_settings_new ("org.gnome.latexila.preferences.latex"), _g_object_unref0 (self->priv->settings), _tmp0_);
-	self->priv->commands = (_tmp1_ = gee_hash_map_new (G_TYPE_STRING, (GBoxedCopyFunc) g_strdup, g_free, COMPLETION_PROVIDER_TYPE_COMPLETION_COMMAND, (GBoxedCopyFunc) completion_provider_completion_command_dup, completion_provider_completion_command_free, NULL, NULL, NULL), _g_object_unref0 (self->priv->commands), _tmp1_);
-	self->priv->icon_normal_cmd = (_tmp2_ = utils_get_pixbuf_from_stock ("completion_cmd", GTK_ICON_SIZE_MENU), _g_object_unref0 (self->priv->icon_normal_cmd), _tmp2_);
-	self->priv->icon_normal_choice = (_tmp3_ = utils_get_pixbuf_from_stock ("completion_choice", GTK_ICON_SIZE_MENU), _g_object_unref0 (self->priv->icon_normal_choice), _tmp3_);
-	self->priv->icon_package_required = (_tmp4_ = utils_get_pixbuf_from_stock (GTK_STOCK_DIALOG_WARNING, GTK_ICON_SIZE_MENU), _g_object_unref0 (self->priv->icon_package_required), _tmp4_);
-	{
-		GFile* file;
-		char* contents;
-		char* _tmp5_ = NULL;
-		char* _tmp6_;
-		GMarkupParser _tmp7_ = {0};
-		GMarkupParser parser;
-		GMarkupParseContext* context;
-		file = g_file_new_for_path (DATA_DIR "/completion.xml");
-		contents = NULL;
-		g_file_load_contents (file, NULL, &_tmp5_, NULL, NULL, &_inner_error_);
-		contents = (_tmp6_ = _tmp5_, _g_free0 (contents), _tmp6_);
-		if (_inner_error_ != NULL) {
-			_g_free0 (contents);
-			_g_object_unref0 (file);
-			goto __catch31_g_error;
-		}
-		parser = (_tmp7_.start_element = _completion_provider_parser_start_gmarkup_parser_start_element_func, _tmp7_.end_element = _completion_provider_parser_end_gmarkup_parser_end_element_func, _tmp7_.text = NULL, _tmp7_.passthrough = NULL, _tmp7_.error = NULL, _tmp7_);
-		context = g_markup_parse_context_new (&parser, 0, self, NULL);
-		g_markup_parse_context_parse (context, contents, (gssize) (-1), &_inner_error_);
-		if (_inner_error_ != NULL) {
-			_g_markup_parse_context_free0 (context);
-			_g_free0 (contents);
-			_g_object_unref0 (file);
-			goto __catch31_g_error;
-		}
-		self->priv->proposals = g_list_sort (self->priv->proposals, (GCompareFunc) completion_provider_compare_proposals);
+	_tmp0_ = g_settings_new ("org.gnome.latexila.preferences.latex");
+	_g_object_unref0 (self->priv->settings);
+	self->priv->settings = _tmp0_;
+	_tmp1_ = gee_hash_map_new (G_TYPE_STRING, (GBoxedCopyFunc) g_strdup, g_free, COMPLETION_PROVIDER_TYPE_COMPLETION_COMMAND, (GBoxedCopyFunc) completion_provider_completion_command_dup, completion_provider_completion_command_free, NULL, NULL, NULL);
+	_g_object_unref0 (self->priv->commands);
+	self->priv->commands = _tmp1_;
+	_tmp2_ = gee_hash_map_new (G_TYPE_STRING, (GBoxedCopyFunc) g_strdup, g_free, COMPLETION_PROVIDER_TYPE_COMPLETION_CHOICE, (GBoxedCopyFunc) completion_provider_completion_choice_dup, completion_provider_completion_choice_free, NULL, NULL, NULL);
+	_g_object_unref0 (self->priv->environments);
+	self->priv->environments = _tmp2_;
+	_tmp3_ = utils_get_pixbuf_from_stock ("completion_cmd", GTK_ICON_SIZE_MENU);
+	_g_object_unref0 (self->priv->icon_normal_cmd);
+	self->priv->icon_normal_cmd = _tmp3_;
+	_tmp4_ = utils_get_pixbuf_from_stock ("completion_choice", GTK_ICON_SIZE_MENU);
+	_g_object_unref0 (self->priv->icon_normal_choice);
+	self->priv->icon_normal_choice = _tmp4_;
+	_tmp5_ = utils_get_pixbuf_from_stock (GTK_STOCK_DIALOG_WARNING, GTK_ICON_SIZE_MENU);
+	_g_object_unref0 (self->priv->icon_package_required);
+	self->priv->icon_package_required = _tmp5_;
+	_tmp6_ = g_file_new_for_path (DATA_DIR "/completion.xml");
+	file = _tmp6_;
+	g_file_load_contents (file, NULL, &_tmp7_, NULL, NULL, &_inner_error_);
+	_g_free0 (contents);
+	contents = _tmp7_;
+	if (_inner_error_ != NULL) {
+		_g_free0 (contents);
+		_g_object_unref0 (file);
+		goto __catch31_g_error;
+	}
+	_tmp8_.start_element = _completion_provider_parser_start_gmarkup_parser_start_element_func;
+	_tmp8_.end_element = _completion_provider_parser_end_gmarkup_parser_end_element_func;
+	_tmp8_.text = _completion_provider_parser_text_gmarkup_parser_text_func;
+	_tmp8_.passthrough = NULL;
+	_tmp8_.error = NULL;
+	parser = _tmp8_;
+	_tmp9_ = g_markup_parse_context_new (&parser, 0, self, NULL);
+	context = _tmp9_;
+	g_markup_parse_context_parse (context, contents, (gssize) (-1), &_inner_error_);
+	if (_inner_error_ != NULL) {
 		_g_markup_parse_context_free0 (context);
 		_g_free0 (contents);
 		_g_object_unref0 (file);
+		goto __catch31_g_error;
 	}
+	self->priv->proposals = g_list_sort (self->priv->proposals, (GCompareFunc) completion_provider_compare_proposals);
+	_g_markup_parse_context_free0 (context);
+	_g_free0 (contents);
+	_g_object_unref0 (file);
 	goto __finally31;
 	__catch31_g_error:
 	{
 		GError * e;
 		e = _inner_error_;
 		_inner_error_ = NULL;
-		{
-			fprintf (stderr, "Warning: impossible to load completion data: %s\n", e->message);
-			_g_error_free0 (e);
-		}
+		fprintf (stderr, "Warning: impossible to load completion data: %s\n", e->message);
+		_g_error_free0 (e);
 	}
 	__finally31:
 	if (_inner_error_ != NULL) {
@@ -349,20 +384,26 @@ static gpointer _g_object_ref0 (gpointer self) {
 
 CompletionProvider* completion_provider_get_default (void) {
 	CompletionProvider* result = NULL;
+	CompletionProvider* _tmp1_;
 	if (completion_provider_instance == NULL) {
-		CompletionProvider* _tmp0_;
-		completion_provider_instance = (_tmp0_ = completion_provider_new (), _g_object_unref0 (completion_provider_instance), _tmp0_);
+		CompletionProvider* _tmp0_ = NULL;
+		_tmp0_ = completion_provider_new ();
+		_g_object_unref0 (completion_provider_instance);
+		completion_provider_instance = _tmp0_;
 	}
-	result = _g_object_ref0 (completion_provider_instance);
+	_tmp1_ = _g_object_ref0 (completion_provider_instance);
+	result = _tmp1_;
 	return result;
 }
 
 
-static char* completion_provider_real_get_name (GtkSourceCompletionProvider* base) {
+static gchar* completion_provider_real_get_name (GtkSourceCompletionProvider* base) {
 	CompletionProvider * self;
-	char* result = NULL;
+	gchar* result = NULL;
+	gchar* _tmp0_;
 	self = (CompletionProvider*) base;
-	result = g_strdup ("LaTeX");
+	_tmp0_ = g_strdup ("LaTeX");
+	result = _tmp0_;
 	return result;
 }
 
@@ -380,9 +421,11 @@ static GtkSourceCompletionActivation completion_provider_real_get_activation (Gt
 	CompletionProvider * self;
 	GtkSourceCompletionActivation result = 0;
 	GtkSourceCompletionActivation ret;
+	gboolean _tmp0_;
 	self = (CompletionProvider*) base;
 	ret = GTK_SOURCE_COMPLETION_ACTIVATION_USER_REQUESTED;
-	if (g_settings_get_boolean (self->priv->settings, "interactive-completion")) {
+	_tmp0_ = g_settings_get_boolean (self->priv->settings, "interactive-completion");
+	if (_tmp0_) {
 		ret = ret | GTK_SOURCE_COMPLETION_ACTIVATION_INTERACTIVE;
 	}
 	result = ret;
@@ -437,14 +480,6 @@ static gint completion_provider_real_get_priority (GtkSourceCompletionProvider*
 }
 
 
-static glong string_get_length (const char* self) {
-	glong result;
-	g_return_val_if_fail (self != NULL, 0L);
-	result = g_utf8_strlen (self, (gssize) (-1));
-	return result;
-}
-
-
 static gboolean completion_provider_real_match (GtkSourceCompletionProvider* base, GtkSourceCompletionContext* context) {
 	CompletionProvider * self;
 	gboolean result = FALSE;
@@ -452,13 +487,20 @@ static gboolean completion_provider_real_match (GtkSourceCompletionProvider* bas
 	gboolean valid_arg_contents;
 	GtkTextIter _tmp0_ = {0};
 	GtkTextIter iter;
+	GtkTextBuffer* _tmp1_ = NULL;
+	GtkTextBuffer* _tmp2_;
 	GtkTextBuffer* buf;
-	char* cmd;
-	GtkSourceCompletionActivation _tmp1_;
-	gboolean _tmp3_ = FALSE;
-	gboolean _tmp5_ = FALSE;
+	gboolean _tmp3_;
+	gchar* _tmp4_ = NULL;
+	gchar* cmd;
+	GtkSourceCompletionActivation _tmp7_;
+	gboolean _tmp9_ = FALSE;
+	gboolean _tmp10_;
+	gboolean _tmp12_ = FALSE;
+	gint _tmp13_;
 	gint min_nb_chars;
-	gboolean _tmp6_ = FALSE;
+	gint _tmp14_;
+	gboolean _tmp15_ = FALSE;
 	self = (CompletionProvider*) base;
 	g_return_val_if_fail (context != NULL, FALSE);
 	self->priv->first_populate = TRUE;
@@ -469,67 +511,81 @@ static gboolean completion_provider_real_match (GtkSourceCompletionProvider* bas
 	in_argument = FALSE;
 	valid_arg_contents = FALSE;
 	self->priv->show_all_proposals = FALSE;
-	iter = (_tmp0_);
+	iter = _tmp0_;
 	gtk_source_completion_context_get_iter (context, &iter);
-	buf = _g_object_ref0 (gtk_text_iter_get_buffer (&iter));
-	if (gtk_text_buffer_get_has_selection (buf)) {
+	_tmp1_ = gtk_text_iter_get_buffer (&iter);
+	_tmp2_ = _g_object_ref0 (_tmp1_);
+	buf = _tmp2_;
+	_tmp3_ = gtk_text_buffer_get_has_selection (buf);
+	if (_tmp3_) {
 		result = FALSE;
 		_g_object_unref0 (buf);
 		return result;
 	}
-	cmd = completion_provider_get_latex_command_at_iter (self, &iter);
+	_tmp4_ = completion_provider_get_latex_command_at_iter (self, &iter);
+	cmd = _tmp4_;
 	if (cmd == NULL) {
-		in_argument = completion_provider_in_latex_command_argument (self, &iter, NULL, NULL, NULL, &valid_arg_contents);
+		gboolean _tmp5_;
+		gboolean _tmp6_;
+		_tmp6_ = completion_provider_in_latex_command_argument (self, &iter, NULL, NULL, NULL, &_tmp5_);
+		valid_arg_contents = _tmp5_;
+		in_argument = _tmp6_;
 	}
-	if ((g_object_get (context, "activation", &_tmp1_, NULL), _tmp1_) == GTK_SOURCE_COMPLETION_ACTIVATION_USER_REQUESTED) {
-		gboolean _tmp2_ = FALSE;
+	g_object_get (context, "activation", &_tmp7_, NULL);
+	if (_tmp7_ == GTK_SOURCE_COMPLETION_ACTIVATION_USER_REQUESTED) {
+		gboolean _tmp8_ = FALSE;
 		if (cmd == NULL) {
-			_tmp2_ = !in_argument;
+			_tmp8_ = !in_argument;
 		} else {
-			_tmp2_ = FALSE;
+			_tmp8_ = FALSE;
 		}
-		self->priv->show_all_proposals = _tmp2_;
+		self->priv->show_all_proposals = _tmp8_;
 		result = TRUE;
 		_g_free0 (cmd);
 		_g_object_unref0 (buf);
 		return result;
 	}
-	if (!g_settings_get_boolean (self->priv->settings, "interactive-completion")) {
-		_tmp3_ = TRUE;
+	_tmp10_ = g_settings_get_boolean (self->priv->settings, "interactive-completion");
+	if (!_tmp10_) {
+		_tmp9_ = TRUE;
 	} else {
-		gboolean _tmp4_ = FALSE;
+		gboolean _tmp11_ = FALSE;
 		if (in_argument) {
-			_tmp4_ = !valid_arg_contents;
+			_tmp11_ = !valid_arg_contents;
 		} else {
-			_tmp4_ = FALSE;
+			_tmp11_ = FALSE;
 		}
-		_tmp3_ = _tmp4_;
+		_tmp9_ = _tmp11_;
 	}
-	if (_tmp3_) {
+	if (_tmp9_) {
 		result = FALSE;
 		_g_free0 (cmd);
 		_g_object_unref0 (buf);
 		return result;
 	}
 	if (in_argument) {
-		_tmp5_ = valid_arg_contents;
+		_tmp12_ = valid_arg_contents;
 	} else {
-		_tmp5_ = FALSE;
+		_tmp12_ = FALSE;
 	}
-	if (_tmp5_) {
+	if (_tmp12_) {
 		result = TRUE;
 		_g_free0 (cmd);
 		_g_object_unref0 (buf);
 		return result;
 	}
-	min_nb_chars = g_settings_get_int (self->priv->settings, "interactive-completion-num");
-	min_nb_chars = CLAMP (min_nb_chars, 0, 8);
+	_tmp13_ = g_settings_get_int (self->priv->settings, "interactive-completion-num");
+	min_nb_chars = _tmp13_;
+	_tmp14_ = CLAMP (min_nb_chars, 0, 8);
+	min_nb_chars = _tmp14_;
 	if (cmd != NULL) {
-		_tmp6_ = string_get_length (cmd) > min_nb_chars;
+		gint _tmp16_;
+		_tmp16_ = strlen (cmd);
+		_tmp15_ = _tmp16_ > min_nb_chars;
 	} else {
-		_tmp6_ = FALSE;
+		_tmp15_ = FALSE;
 	}
-	result = _tmp6_;
+	result = _tmp15_;
 	_g_free0 (cmd);
 	_g_object_unref0 (buf);
 	return result;
@@ -540,80 +596,93 @@ static void completion_provider_real_populate (GtkSourceCompletionProvider* base
 	CompletionProvider * self;
 	GtkTextIter _tmp0_ = {0};
 	GtkTextIter iter;
-	char* cmd;
+	gchar* _tmp1_ = NULL;
+	gchar* cmd;
 	gboolean in_argument;
-	char* cmd_name;
+	gchar* cmd_name;
+	GeeArrayList* _tmp2_ = NULL;
 	GeeArrayList* arguments;
-	char* argument_contents;
+	gchar* argument_contents;
 	gboolean valid_arg_contents;
+	gboolean _tmp8_ = FALSE;
+	gboolean _tmp9_ = FALSE;
 	gboolean _tmp10_ = FALSE;
 	gboolean _tmp11_ = FALSE;
-	gboolean _tmp12_ = FALSE;
-	gboolean _tmp13_ = FALSE;
 	gboolean _tmp17_ = FALSE;
 	GList* proposals_to_filter;
-	char* prefix;
-	gboolean _tmp24_ = FALSE;
+	gchar* prefix;
+	gboolean _tmp28_ = FALSE;
 	GList* filtered_proposals;
 	self = (CompletionProvider*) base;
 	g_return_if_fail (context != NULL);
 	if (self->locked) {
 		return;
 	}
-	iter = (_tmp0_);
+	iter = _tmp0_;
 	gtk_source_completion_context_get_iter (context, &iter);
-	cmd = completion_provider_get_latex_command_at_iter (self, &iter);
+	_tmp1_ = completion_provider_get_latex_command_at_iter (self, &iter);
+	cmd = _tmp1_;
 	in_argument = FALSE;
 	cmd_name = NULL;
-	arguments = gee_array_list_new (G_TYPE_BOOLEAN, NULL, NULL, NULL);
+	_tmp2_ = gee_array_list_new (G_TYPE_BOOLEAN, NULL, NULL, NULL);
+	arguments = _tmp2_;
 	argument_contents = NULL;
 	valid_arg_contents = FALSE;
 	if (cmd == NULL) {
-		char* _tmp1_ = NULL;
-		gboolean _tmp2_;
-		char* _tmp3_;
+		gchar* _tmp3_ = NULL;
 		GeeArrayList* _tmp4_ = NULL;
-		gboolean _tmp5_;
-		GeeArrayList* _tmp6_;
-		char* _tmp7_ = NULL;
-		gboolean _tmp8_;
-		char* _tmp9_;
-		in_argument = (_tmp8_ = (_tmp5_ = (_tmp2_ = completion_provider_in_latex_command_argument (self, &iter, &_tmp1_, &_tmp4_, &_tmp7_, &valid_arg_contents), cmd_name = (_tmp3_ = _tmp1_, _g_free0 (cmd_name), _tmp3_), _tmp2_), arguments = (_tmp6_ = _tmp4_, _g_object_unref0 (arguments), _tmp6_), _tmp5_), argument_contents = (_tmp9_ = _tmp7_, _g_free0 (argument_contents), _tmp9_), _tmp8_);
+		gchar* _tmp5_ = NULL;
+		gboolean _tmp6_;
+		gboolean _tmp7_;
+		_tmp7_ = completion_provider_in_latex_command_argument (self, &iter, &_tmp3_, &_tmp4_, &_tmp5_, &_tmp6_);
+		_g_free0 (cmd_name);
+		cmd_name = _tmp3_;
+		_g_object_unref0 (arguments);
+		arguments = _tmp4_;
+		_g_free0 (argument_contents);
+		argument_contents = _tmp5_;
+		valid_arg_contents = _tmp6_;
+		in_argument = _tmp7_;
 	}
 	if (!self->priv->show_all_proposals) {
-		_tmp13_ = cmd == NULL;
+		_tmp11_ = cmd == NULL;
 	} else {
-		_tmp13_ = FALSE;
+		_tmp11_ = FALSE;
 	}
-	if (_tmp13_) {
-		_tmp12_ = !in_argument;
+	if (_tmp11_) {
+		_tmp10_ = !in_argument;
 	} else {
-		_tmp12_ = FALSE;
+		_tmp10_ = FALSE;
 	}
-	if (_tmp12_) {
-		_tmp11_ = TRUE;
+	if (_tmp10_) {
+		_tmp9_ = TRUE;
 	} else {
-		gboolean _tmp14_ = FALSE;
-		GtkSourceCompletionActivation _tmp15_;
-		if ((g_object_get (context, "activation", &_tmp15_, NULL), _tmp15_) == GTK_SOURCE_COMPLETION_ACTIVATION_INTERACTIVE) {
-			_tmp14_ = !g_settings_get_boolean (self->priv->settings, "interactive-completion");
+		gboolean _tmp12_ = FALSE;
+		GtkSourceCompletionActivation _tmp13_;
+		g_object_get (context, "activation", &_tmp13_, NULL);
+		if (_tmp13_ == GTK_SOURCE_COMPLETION_ACTIVATION_INTERACTIVE) {
+			gboolean _tmp14_;
+			_tmp14_ = g_settings_get_boolean (self->priv->settings, "interactive-completion");
+			_tmp12_ = !_tmp14_;
 		} else {
-			_tmp14_ = FALSE;
+			_tmp12_ = FALSE;
 		}
-		_tmp11_ = _tmp14_;
+		_tmp9_ = _tmp12_;
 	}
-	if (_tmp11_) {
-		_tmp10_ = TRUE;
+	if (_tmp9_) {
+		_tmp8_ = TRUE;
 	} else {
-		gboolean _tmp16_ = FALSE;
+		gboolean _tmp15_ = FALSE;
 		if (in_argument) {
-			_tmp16_ = !gee_abstract_map_has_key ((GeeAbstractMap*) self->priv->commands, cmd_name);
+			gboolean _tmp16_;
+			_tmp16_ = gee_abstract_map_has_key ((GeeAbstractMap*) self->priv->commands, cmd_name);
+			_tmp15_ = !_tmp16_;
 		} else {
-			_tmp16_ = FALSE;
+			_tmp15_ = FALSE;
 		}
-		_tmp10_ = _tmp16_;
+		_tmp8_ = _tmp15_;
 	}
-	if (_tmp10_) {
+	if (_tmp8_) {
 		completion_provider_clear_context (self, context);
 		self->priv->first_populate = FALSE;
 		_g_free0 (argument_contents);
@@ -625,7 +694,7 @@ static void completion_provider_real_populate (GtkSourceCompletionProvider* base
 	if (self->priv->show_all_proposals) {
 		_tmp17_ = TRUE;
 	} else {
-		_tmp17_ = _vala_strcmp0 (cmd, "\\") == 0;
+		_tmp17_ = g_strcmp0 (cmd, "\\") == 0;
 	}
 	if (_tmp17_) {
 		self->priv->show_all_proposals = FALSE;
@@ -640,39 +709,55 @@ static void completion_provider_real_populate (GtkSourceCompletionProvider* base
 	proposals_to_filter = NULL;
 	prefix = NULL;
 	if (!in_argument) {
-		char* _tmp18_;
+		gchar* _tmp18_;
 		proposals_to_filter = self->priv->proposals;
-		prefix = (_tmp18_ = g_strdup (cmd), _g_free0 (prefix), _tmp18_);
+		_tmp18_ = g_strdup (cmd);
+		_g_free0 (prefix);
+		prefix = _tmp18_;
 	} else {
 		gboolean _tmp19_ = FALSE;
 		if (valid_arg_contents) {
-			_tmp19_ = gee_abstract_map_has_key ((GeeAbstractMap*) self->priv->commands, cmd_name);
+			gboolean _tmp20_;
+			_tmp20_ = gee_abstract_map_has_key ((GeeAbstractMap*) self->priv->commands, cmd_name);
+			_tmp19_ = _tmp20_;
 		} else {
 			_tmp19_ = FALSE;
 		}
 		if (_tmp19_) {
-			CompletionProviderCompletionCommand* _tmp20_;
-			char* _tmp21_;
-			char* _tmp23_;
-			proposals_to_filter = completion_provider_get_argument_proposals (self, _tmp20_ = (CompletionProviderCompletionCommand*) gee_abstract_map_get ((GeeAbstractMap*) self->priv->commands, cmd_name), arguments);
-			_completion_provider_completion_command_free0 (_tmp20_);
-			_tmp21_ = g_strdup (argument_contents);
-			if (_tmp21_ == NULL) {
-				char* _tmp22_;
-				_tmp21_ = (_tmp22_ = g_strdup (""), _g_free0 (_tmp21_), _tmp22_);
+			gpointer _tmp21_ = NULL;
+			CompletionProviderCompletionCommand* _tmp22_;
+			GList* _tmp23_ = NULL;
+			gchar* _tmp24_;
+			gchar* _tmp25_;
+			gchar* _tmp27_;
+			_tmp21_ = gee_abstract_map_get ((GeeAbstractMap*) self->priv->commands, cmd_name);
+			_tmp22_ = (CompletionProviderCompletionCommand*) _tmp21_;
+			_tmp23_ = completion_provider_get_argument_proposals (self, _tmp22_, arguments);
+			proposals_to_filter = _tmp23_;
+			_completion_provider_completion_command_free0 (_tmp22_);
+			_tmp24_ = g_strdup (argument_contents);
+			_tmp25_ = _tmp24_;
+			if (_tmp25_ == NULL) {
+				gchar* _tmp26_;
+				_tmp26_ = g_strdup ("");
+				_g_free0 (_tmp25_);
+				_tmp25_ = _tmp26_;
 			}
-			prefix = (_tmp23_ = g_strdup (_tmp21_), _g_free0 (prefix), _tmp23_);
-			_g_free0 (_tmp21_);
+			_tmp27_ = g_strdup (_tmp25_);
+			_g_free0 (prefix);
+			prefix = _tmp27_;
+			_g_free0 (_tmp25_);
 		}
 	}
 	if (in_argument) {
-		_tmp24_ = proposals_to_filter == NULL;
+		_tmp28_ = proposals_to_filter == NULL;
 	} else {
-		_tmp24_ = FALSE;
+		_tmp28_ = FALSE;
 	}
-	if (_tmp24_) {
-		GtkSourceCompletionActivation _tmp25_;
-		if ((g_object_get (context, "activation", &_tmp25_, NULL), _tmp25_) == GTK_SOURCE_COMPLETION_ACTIVATION_INTERACTIVE) {
+	if (_tmp28_) {
+		GtkSourceCompletionActivation _tmp29_;
+		g_object_get (context, "activation", &_tmp29_, NULL);
+		if (_tmp29_ == GTK_SOURCE_COMPLETION_ACTIVATION_INTERACTIVE) {
 			completion_provider_clear_context (self, context);
 			completion_provider_hide_calltip_window (self);
 			_g_free0 (prefix);
@@ -683,16 +768,28 @@ static void completion_provider_real_populate (GtkSourceCompletionProvider* base
 			return;
 		}
 		if (self->priv->first_populate) {
-			CompletionProviderCompletionCommand* _tmp26_;
-			CompletionProviderCompletionCommand _tmp27_ = {0};
-			CompletionProviderCompletionCommand _tmp28_;
+			gpointer _tmp30_ = NULL;
+			CompletionProviderCompletionCommand* _tmp31_;
+			CompletionProviderCompletionCommand _tmp32_;
+			CompletionProviderCompletionCommand _tmp33_ = {0};
+			CompletionProviderCompletionCommand _tmp34_;
 			CompletionProviderCompletionCommand command;
+			gint _tmp35_;
 			gint num;
-			command = (_tmp28_ = (completion_provider_completion_command_copy (_tmp26_ = (CompletionProviderCompletionCommand*) gee_abstract_map_get ((GeeAbstractMap*) self->priv->commands, cmd_name), &_tmp27_), _tmp27_), _completion_provider_completion_command_free0 (_tmp26_), _tmp28_);
-			num = completion_provider_get_argument_num (self, command.args, command.args_length1, arguments);
+			_tmp30_ = gee_abstract_map_get ((GeeAbstractMap*) self->priv->commands, cmd_name);
+			_tmp31_ = (CompletionProviderCompletionCommand*) _tmp30_;
+			completion_provider_completion_command_copy (_tmp31_, &_tmp33_);
+			_tmp32_ = _tmp33_;
+			_tmp34_ = _tmp32_;
+			_completion_provider_completion_command_free0 (_tmp31_);
+			command = _tmp34_;
+			_tmp35_ = completion_provider_get_argument_num (self, command.args, command.args_length1, arguments);
+			num = _tmp35_;
 			if (num != (-1)) {
-				char* info;
-				info = completion_provider_get_command_info (self, &command, num);
+				gchar* _tmp36_ = NULL;
+				gchar* info;
+				_tmp36_ = completion_provider_get_command_info (self, &command, num);
+				info = _tmp36_;
 				completion_provider_show_calltip_info (self, info);
 				_g_free0 (info);
 			}
@@ -712,30 +809,46 @@ static void completion_provider_real_populate (GtkSourceCompletionProvider* base
 		GList* item_it;
 		item_collection = proposals_to_filter;
 		for (item_it = item_collection; item_it != NULL; item_it = item_it->next) {
+			GtkSourceCompletionItem* _tmp37_;
 			GtkSourceCompletionItem* item;
-			item = _g_object_ref0 ((GtkSourceCompletionItem*) item_it->data);
+			_tmp37_ = _g_object_ref0 ((GtkSourceCompletionItem*) item_it->data);
+			item = _tmp37_;
 			{
-				char* _tmp29_ = NULL;
-				char* _tmp30_;
-				gboolean _tmp31_;
-				if ((_tmp31_ = g_str_has_prefix (_tmp30_ = (g_object_get (item, "text", &_tmp29_, NULL), _tmp29_), prefix), _g_free0 (_tmp30_), _tmp31_)) {
-					filtered_proposals = g_list_prepend (filtered_proposals, _g_object_ref0 (item));
+				gchar* _tmp38_ = NULL;
+				gchar* _tmp39_;
+				gboolean _tmp40_;
+				gboolean _tmp41_;
+				g_object_get (item, "text", &_tmp38_, NULL);
+				_tmp39_ = _tmp38_;
+				_tmp40_ = g_str_has_prefix (_tmp39_, prefix);
+				_tmp41_ = _tmp40_;
+				_g_free0 (_tmp39_);
+				if (_tmp41_) {
+					GtkSourceCompletionItem* _tmp42_;
+					_tmp42_ = _g_object_ref0 (item);
+					filtered_proposals = g_list_prepend (filtered_proposals, _tmp42_);
 				}
 				_g_object_unref0 (item);
 			}
 		}
 	}
 	if (filtered_proposals == NULL) {
+		const gchar* _tmp43_ = NULL;
+		GtkSourceCompletionItem* _tmp44_ = NULL;
 		GtkSourceCompletionItem* dummy_proposal;
-		dummy_proposal = gtk_source_completion_item_new (_ ("No matching proposal"), "", NULL, NULL);
-		filtered_proposals = g_list_prepend (filtered_proposals, _g_object_ref0 (dummy_proposal));
+		GtkSourceCompletionItem* _tmp45_;
+		_tmp43_ = _ ("No matching proposal");
+		_tmp44_ = gtk_source_completion_item_new (_tmp43_, "", NULL, NULL);
+		dummy_proposal = _tmp44_;
+		_tmp45_ = _g_object_ref0 (dummy_proposal);
+		filtered_proposals = g_list_prepend (filtered_proposals, _tmp45_);
 		_g_object_unref0 (dummy_proposal);
 	} else {
 		filtered_proposals = g_list_reverse (filtered_proposals);
 	}
 	gtk_source_completion_context_add_proposals (context, GTK_SOURCE_COMPLETION_PROVIDER (self), filtered_proposals, TRUE);
 	self->priv->first_populate = FALSE;
-	__g_list_free_g_object_unref0 (filtered_proposals);
+	__g_list_free__g_object_unref0_0 (filtered_proposals);
 	_g_free0 (prefix);
 	_g_free0 (argument_contents);
 	_g_object_unref0 (arguments);
@@ -744,45 +857,61 @@ static void completion_provider_real_populate (GtkSourceCompletionProvider* base
 }
 
 
+static gchar string_get (const gchar* self, glong index) {
+	gchar result = '\0';
+	g_return_val_if_fail (self != NULL, '\0');
+	result = ((gchar*) self)[index];
+	return result;
+}
+
+
 static gboolean completion_provider_real_activate_proposal (GtkSourceCompletionProvider* base, GtkSourceCompletionProposal* proposal, GtkTextIter* iter) {
 	CompletionProvider * self;
 	gboolean result = FALSE;
-	char* text;
-	gboolean _tmp0_ = FALSE;
-	char* cmd;
+	gchar* _tmp0_ = NULL;
+	gchar* text;
 	gboolean _tmp1_ = FALSE;
+	gchar* _tmp2_ = NULL;
+	gchar* cmd;
+	gboolean _tmp3_ = FALSE;
 	self = (CompletionProvider*) base;
 	g_return_val_if_fail (proposal != NULL, FALSE);
-	text = gtk_source_completion_proposal_get_text (proposal);
+	_tmp0_ = gtk_source_completion_proposal_get_text (proposal);
+	text = _tmp0_;
 	if (text == NULL) {
-		_tmp0_ = TRUE;
+		_tmp1_ = TRUE;
 	} else {
-		_tmp0_ = _vala_strcmp0 (text, "") == 0;
+		_tmp1_ = g_strcmp0 (text, "") == 0;
 	}
-	if (_tmp0_) {
+	if (_tmp1_) {
 		result = TRUE;
 		_g_free0 (text);
 		return result;
 	}
-	cmd = completion_provider_get_latex_command_at_iter (self, iter);
+	_tmp2_ = completion_provider_get_latex_command_at_iter (self, iter);
+	cmd = _tmp2_;
 	if (cmd == NULL) {
-		_tmp1_ = g_utf8_get_char (g_utf8_offset_to_pointer (text, 0)) != '\\';
+		gchar _tmp4_;
+		_tmp4_ = string_get (text, (glong) 0);
+		_tmp3_ = _tmp4_ != '\\';
 	} else {
-		_tmp1_ = FALSE;
+		_tmp3_ = FALSE;
 	}
-	if (_tmp1_) {
-		char* cmd_name;
-		char* argument_contents;
-		char* _tmp2_ = NULL;
-		gboolean _tmp3_;
-		char* _tmp4_;
-		char* _tmp5_ = NULL;
-		gboolean _tmp6_;
-		char* _tmp7_;
+	if (_tmp3_) {
+		gchar* cmd_name;
+		gchar* argument_contents;
+		gchar* _tmp5_ = NULL;
+		gchar* _tmp6_ = NULL;
+		gboolean _tmp7_;
 		gboolean in_argument;
 		cmd_name = NULL;
 		argument_contents = NULL;
-		in_argument = (_tmp6_ = (_tmp3_ = completion_provider_in_latex_command_argument (self, iter, &_tmp2_, NULL, &_tmp5_, NULL), cmd_name = (_tmp4_ = _tmp2_, _g_free0 (cmd_name), _tmp4_), _tmp3_), argument_contents = (_tmp7_ = _tmp5_, _g_free0 (argument_contents), _tmp7_), _tmp6_);
+		_tmp7_ = completion_provider_in_latex_command_argument (self, iter, &_tmp5_, NULL, &_tmp6_, NULL);
+		_g_free0 (cmd_name);
+		cmd_name = _tmp5_;
+		_g_free0 (argument_contents);
+		argument_contents = _tmp6_;
+		in_argument = _tmp7_;
 		if (in_argument) {
 			completion_provider_activate_proposal_argument_choice (self, proposal, iter, cmd_name, argument_contents);
 			result = TRUE;
@@ -803,14 +932,16 @@ static gboolean completion_provider_real_activate_proposal (GtkSourceCompletionP
 }
 
 
-static char* string_slice (const char* self, glong start, glong end) {
-	char* result = NULL;
+static gchar* string_slice (const gchar* self, glong start, glong end) {
+	gchar* result = NULL;
+	gint _tmp0_;
 	glong string_length;
-	gboolean _tmp0_ = FALSE;
 	gboolean _tmp1_ = FALSE;
-	const char* start_string;
+	gboolean _tmp2_ = FALSE;
+	gchar* _tmp3_ = NULL;
 	g_return_val_if_fail (self != NULL, NULL);
-	string_length = string_get_length (self);
+	_tmp0_ = strlen (self);
+	string_length = (glong) _tmp0_;
 	if (start < 0) {
 		start = string_length + start;
 	}
@@ -818,64 +949,86 @@ static char* string_slice (const char* self, glong start, glong end) {
 		end = string_length + end;
 	}
 	if (start >= 0) {
-		_tmp0_ = start <= string_length;
+		_tmp1_ = start <= string_length;
 	} else {
-		_tmp0_ = FALSE;
+		_tmp1_ = FALSE;
 	}
-	g_return_val_if_fail (_tmp0_, NULL);
+	g_return_val_if_fail (_tmp1_, NULL);
 	if (end >= 0) {
-		_tmp1_ = end <= string_length;
+		_tmp2_ = end <= string_length;
 	} else {
-		_tmp1_ = FALSE;
+		_tmp2_ = FALSE;
 	}
-	g_return_val_if_fail (_tmp1_, NULL);
+	g_return_val_if_fail (_tmp2_, NULL);
 	g_return_val_if_fail (start <= end, NULL);
-	start_string = g_utf8_offset_to_pointer (self, start);
-	result = g_strndup (start_string, ((gchar*) g_utf8_offset_to_pointer (start_string, end - start)) - ((gchar*) start_string));
+	_tmp3_ = g_strndup (((gchar*) self) + start, (gsize) (end - start));
+	result = _tmp3_;
 	return result;
 }
 
 
-static void completion_provider_activate_proposal_command_name (CompletionProvider* self, GtkSourceCompletionProposal* proposal, GtkTextIter* iter, const char* cmd) {
-	char* text;
-	glong _tmp0_ = 0L;
+static void completion_provider_activate_proposal_command_name (CompletionProvider* self, GtkSourceCompletionProposal* proposal, GtkTextIter* iter, const gchar* cmd) {
+	gchar* _tmp0_ = NULL;
+	gchar* text;
+	gint _tmp1_ = 0;
 	glong index_start;
-	char* text_to_insert;
+	gint _tmp3_;
+	gchar* _tmp4_ = NULL;
+	gchar* text_to_insert;
+	GtkTextBuffer* _tmp5_ = NULL;
+	GtkTextBuffer* _tmp6_;
 	GtkTextBuffer* doc;
 	gint i = 0;
+	gint _tmp10_;
 	g_return_if_fail (self != NULL);
 	g_return_if_fail (proposal != NULL);
-	text = gtk_source_completion_proposal_get_text (proposal);
+	_tmp0_ = gtk_source_completion_proposal_get_text (proposal);
+	text = _tmp0_;
 	if (cmd != NULL) {
-		_tmp0_ = string_get_length (cmd);
+		gint _tmp2_;
+		_tmp2_ = strlen (cmd);
+		_tmp1_ = _tmp2_;
 	} else {
-		_tmp0_ = (glong) 0;
-	}
-	index_start = _tmp0_;
-	text_to_insert = string_slice (text, index_start, string_get_length (text));
-	doc = _g_object_ref0 (gtk_text_iter_get_buffer (iter));
+		_tmp1_ = 0;
+	}
+	index_start = (glong) _tmp1_;
+	_tmp3_ = strlen (text);
+	_tmp4_ = string_slice (text, index_start, (glong) _tmp3_);
+	text_to_insert = _tmp4_;
+	_tmp5_ = gtk_text_iter_get_buffer (iter);
+	_tmp6_ = _g_object_ref0 (_tmp5_);
+	doc = _tmp6_;
 	gtk_text_buffer_begin_user_action (doc);
 	gtk_text_buffer_insert (doc, iter, text_to_insert, -1);
 	gtk_text_buffer_end_user_action (doc);
 	{
-		gboolean _tmp1_;
+		gboolean _tmp7_;
 		i = 0;
-		_tmp1_ = TRUE;
+		_tmp7_ = TRUE;
 		while (TRUE) {
-			if (!_tmp1_) {
+			gint _tmp8_;
+			gchar _tmp9_;
+			if (!_tmp7_) {
 				i++;
 			}
-			_tmp1_ = FALSE;
-			if (!(i < string_get_length (text_to_insert))) {
+			_tmp7_ = FALSE;
+			_tmp8_ = strlen (text_to_insert);
+			if (!(i < _tmp8_)) {
 				break;
 			}
-			if (g_utf8_get_char (g_utf8_offset_to_pointer (text_to_insert, i)) == '{') {
+			_tmp9_ = string_get (text_to_insert, (glong) i);
+			if (_tmp9_ == '{') {
 				break;
 			}
 		}
 	}
-	if (i < string_get_length (text_to_insert)) {
-		if (gtk_text_iter_backward_chars (iter, (((gint) string_get_length (text_to_insert)) - i) - 1)) {
+	_tmp10_ = strlen (text_to_insert);
+	if (i < _tmp10_) {
+		gint _tmp11_;
+		gboolean _tmp12_;
+		_tmp11_ = strlen (text_to_insert);
+		_tmp12_ = gtk_text_iter_backward_chars (iter, (((gint) _tmp11_) - i) - 1);
+		if (_tmp12_) {
 			gtk_text_buffer_place_cursor (doc, iter);
 		}
 	}
@@ -885,27 +1038,39 @@ static void completion_provider_activate_proposal_command_name (CompletionProvid
 }
 
 
-static void completion_provider_activate_proposal_argument_choice (CompletionProvider* self, GtkSourceCompletionProposal* proposal, GtkTextIter* iter, const char* cmd_name, const char* argument_contents) {
-	char* text;
-	glong _tmp0_ = 0L;
+static void completion_provider_activate_proposal_argument_choice (CompletionProvider* self, GtkSourceCompletionProposal* proposal, GtkTextIter* iter, const gchar* cmd_name, const gchar* argument_contents) {
+	gchar* _tmp0_ = NULL;
+	gchar* text;
+	gint _tmp1_ = 0;
 	glong index_start;
-	char* text_to_insert;
+	gint _tmp3_;
+	gchar* _tmp4_ = NULL;
+	gchar* text_to_insert;
+	GtkTextBuffer* _tmp5_ = NULL;
+	GtkTextBuffer* _tmp6_;
 	GtkTextBuffer* doc;
 	g_return_if_fail (self != NULL);
 	g_return_if_fail (proposal != NULL);
 	g_return_if_fail (cmd_name != NULL);
-	text = gtk_source_completion_proposal_get_text (proposal);
+	_tmp0_ = gtk_source_completion_proposal_get_text (proposal);
+	text = _tmp0_;
 	if (argument_contents != NULL) {
-		_tmp0_ = string_get_length (argument_contents);
+		gint _tmp2_;
+		_tmp2_ = strlen (argument_contents);
+		_tmp1_ = _tmp2_;
 	} else {
-		_tmp0_ = (glong) 0;
-	}
-	index_start = _tmp0_;
-	text_to_insert = string_slice (text, index_start, string_get_length (text));
-	doc = _g_object_ref0 (gtk_text_iter_get_buffer (iter));
+		_tmp1_ = 0;
+	}
+	index_start = (glong) _tmp1_;
+	_tmp3_ = strlen (text);
+	_tmp4_ = string_slice (text, index_start, (glong) _tmp3_);
+	text_to_insert = _tmp4_;
+	_tmp5_ = gtk_text_iter_get_buffer (iter);
+	_tmp6_ = _g_object_ref0 (_tmp5_);
+	doc = _tmp6_;
 	gtk_text_buffer_begin_user_action (doc);
 	gtk_text_buffer_insert (doc, iter, text_to_insert, -1);
-	if (_vala_strcmp0 (cmd_name, "\\begin") == 0) {
+	if (g_strcmp0 (cmd_name, "\\begin") == 0) {
 		completion_provider_close_environment (self, text, iter);
 	} else {
 	}
@@ -916,53 +1081,89 @@ static void completion_provider_activate_proposal_argument_choice (CompletionPro
 }
 
 
-static const char* string_to_string (const char* self) {
-	const char* result = NULL;
+static const gchar* string_to_string (const gchar* self) {
+	const gchar* result = NULL;
 	g_return_val_if_fail (self != NULL, NULL);
 	result = self;
 	return result;
 }
 
 
-static void completion_provider_close_environment (CompletionProvider* self, const char* env_name, GtkTextIter* iter) {
+static void completion_provider_close_environment (CompletionProvider* self, const gchar* env_name, GtkTextIter* iter) {
+	gint _tmp0_;
 	gint line;
+	GtkTextBuffer* _tmp1_ = NULL;
+	Document* _tmp2_;
 	Document* doc;
 	GtkTextIter end_iter = {0};
-	char* text;
+	GtkTextIter _tmp3_ = {0};
+	gchar* _tmp4_ = NULL;
+	gchar* text;
 	gboolean found;
 	glong i = 0L;
-	char* current_indent;
+	gchar* _tmp10_ = NULL;
+	gchar* current_indent;
+	gpointer _tmp11_ = NULL;
+	CompletionProviderCompletionChoice* environment;
+	Document* _tmp12_;
 	Document* document;
-	char* indent;
-	char* _tmp1_;
+	DocumentView* _tmp13_ = NULL;
+	gchar* _tmp14_ = NULL;
+	gchar* indent;
+	const gchar* _tmp15_ = NULL;
+	const gchar* _tmp16_ = NULL;
+	gchar* _tmp17_ = NULL;
+	gchar* _tmp18_;
+	gboolean _tmp19_ = FALSE;
+	GtkTextMark* _tmp20_ = NULL;
+	GtkTextMark* _tmp21_;
 	GtkTextMark* cursor_pos;
-	char* _tmp2_;
-	char* _tmp3_;
-	char* _tmp4_;
+	gboolean _tmp22_ = FALSE;
+	const gchar* _tmp23_ = NULL;
+	gchar* _tmp24_ = NULL;
+	gchar* _tmp25_;
+	gchar* _tmp26_;
+	gchar* _tmp27_;
+	gchar* _tmp28_;
+	gchar* _tmp29_;
+	GtkTextIter _tmp30_ = {0};
 	g_return_if_fail (self != NULL);
 	g_return_if_fail (env_name != NULL);
-	line = gtk_text_iter_get_line (iter);
-	doc = _g_object_ref0 (DOCUMENT (gtk_text_iter_get_buffer (iter)));
-	gtk_text_buffer_get_iter_at_line ((GtkTextBuffer*) doc, &end_iter, line + 1);
-	text = gtk_text_buffer_get_text ((GtkTextBuffer*) doc, iter, &end_iter, FALSE);
+	_tmp0_ = gtk_text_iter_get_line (iter);
+	line = _tmp0_;
+	_tmp1_ = gtk_text_iter_get_buffer (iter);
+	_tmp2_ = _g_object_ref0 (DOCUMENT (_tmp1_));
+	doc = _tmp2_;
+	gtk_text_buffer_get_iter_at_line ((GtkTextBuffer*) doc, &_tmp3_, line + 1);
+	end_iter = _tmp3_;
+	_tmp4_ = gtk_text_buffer_get_text ((GtkTextBuffer*) doc, iter, &end_iter, FALSE);
+	text = _tmp4_;
 	found = FALSE;
 	{
-		gboolean _tmp0_;
+		gboolean _tmp5_;
 		i = (glong) 0;
-		_tmp0_ = TRUE;
+		_tmp5_ = TRUE;
 		while (TRUE) {
-			if (!_tmp0_) {
+			gint _tmp6_;
+			gchar _tmp7_;
+			gchar _tmp8_;
+			gboolean _tmp9_;
+			if (!_tmp5_) {
 				i++;
 			}
-			_tmp0_ = FALSE;
-			if (!(i < string_get_length (text))) {
+			_tmp5_ = FALSE;
+			_tmp6_ = strlen (text);
+			if (!(i < _tmp6_)) {
 				break;
 			}
-			if (g_utf8_get_char (g_utf8_offset_to_pointer (text, i)) == '}') {
+			_tmp7_ = string_get (text, i);
+			if (_tmp7_ == '}') {
 				found = TRUE;
 				break;
 			}
-			if (g_unichar_isspace (g_utf8_get_char (g_utf8_offset_to_pointer (text, i)))) {
+			_tmp8_ = string_get (text, i);
+			_tmp9_ = g_ascii_isspace (_tmp8_);
+			if (_tmp9_) {
 				continue;
 			}
 			break;
@@ -973,21 +1174,58 @@ static void completion_provider_close_environment (CompletionProvider* self, con
 	} else {
 		gtk_text_iter_forward_chars (iter, ((gint) i) + 1);
 	}
-	current_indent = document_get_current_indentation (doc, line);
-	document = _g_object_ref0 (DOCUMENT (doc));
-	indent = document_view_get_indentation_style (document_tab_get_view (document->tab));
-	document_insert (doc, iter, _tmp1_ = g_strconcat ("\n", string_to_string (current_indent), string_to_string (indent), NULL), -1);
-	_g_free0 (_tmp1_);
-	cursor_pos = _g_object_ref0 (gtk_text_buffer_create_mark ((GtkTextBuffer*) doc, NULL, iter, TRUE));
-	document_insert (doc, iter, _tmp4_ = g_strconcat (_tmp3_ = g_strconcat (_tmp2_ = g_strconcat ("\n", string_to_string (current_indent), "\\end{", NULL), env_name, NULL), "}", NULL), -1);
-	_g_free0 (_tmp4_);
-	_g_free0 (_tmp3_);
-	_g_free0 (_tmp2_);
-	gtk_text_buffer_get_iter_at_mark ((GtkTextBuffer*) doc, iter, cursor_pos);
+	_tmp10_ = document_get_current_indentation (doc, line);
+	current_indent = _tmp10_;
+	_tmp11_ = gee_abstract_map_get ((GeeAbstractMap*) self->priv->environments, env_name);
+	environment = (CompletionProviderCompletionChoice*) _tmp11_;
+	_tmp12_ = _g_object_ref0 (DOCUMENT (doc));
+	document = _tmp12_;
+	_tmp13_ = document_tab_get_view (document->tab);
+	_tmp14_ = document_view_get_indentation_style (_tmp13_);
+	indent = _tmp14_;
+	_tmp15_ = string_to_string (current_indent);
+	_tmp16_ = string_to_string (indent);
+	_tmp17_ = g_strconcat ("\n", _tmp15_, _tmp16_, NULL);
+	_tmp18_ = _tmp17_;
+	document_insert (doc, iter, _tmp18_, -1);
+	_g_free0 (_tmp18_);
+	if (environment != NULL) {
+		_tmp19_ = (*environment).insert != NULL;
+	} else {
+		_tmp19_ = FALSE;
+	}
+	if (_tmp19_) {
+		document_insert (doc, iter, (*environment).insert, -1);
+	}
+	_tmp20_ = gtk_text_buffer_create_mark ((GtkTextBuffer*) doc, NULL, iter, TRUE);
+	_tmp21_ = _g_object_ref0 (_tmp20_);
+	cursor_pos = _tmp21_;
+	if (environment != NULL) {
+		_tmp22_ = (*environment).insert_after != NULL;
+	} else {
+		_tmp22_ = FALSE;
+	}
+	if (_tmp22_) {
+		document_insert (doc, iter, (*environment).insert_after, -1);
+	}
+	_tmp23_ = string_to_string (current_indent);
+	_tmp24_ = g_strconcat ("\n", _tmp23_, "\\end{", NULL);
+	_tmp25_ = _tmp24_;
+	_tmp26_ = g_strconcat (_tmp25_, env_name, NULL);
+	_tmp27_ = _tmp26_;
+	_tmp28_ = g_strconcat (_tmp27_, "}", NULL);
+	_tmp29_ = _tmp28_;
+	document_insert (doc, iter, _tmp29_, -1);
+	_g_free0 (_tmp29_);
+	_g_free0 (_tmp27_);
+	_g_free0 (_tmp25_);
+	gtk_text_buffer_get_iter_at_mark ((GtkTextBuffer*) doc, &_tmp30_, cursor_pos);
+	*iter = _tmp30_;
 	gtk_text_buffer_place_cursor ((GtkTextBuffer*) doc, iter);
 	_g_object_unref0 (cursor_pos);
 	_g_free0 (indent);
 	_g_object_unref0 (document);
+	_completion_provider_completion_choice_free0 (environment);
 	_g_free0 (current_indent);
 	_g_free0 (text);
 	_g_object_unref0 (doc);
@@ -995,61 +1233,101 @@ static void completion_provider_close_environment (CompletionProvider* self, con
 
 
 static void completion_provider_init_calltip_window (CompletionProvider* self) {
+	Application* _tmp0_ = NULL;
 	Application* app;
-	GtkSourceCompletionInfo* _tmp0_;
-	GtkLabel* _tmp1_;
+	GtkSourceCompletionInfo* _tmp1_ = NULL;
+	MainWindow* _tmp2_ = NULL;
+	GtkLabel* _tmp3_ = NULL;
 	g_return_if_fail (self != NULL);
-	app = application_get_default ();
-	self->priv->calltip_window = (_tmp0_ = g_object_ref_sink (gtk_source_completion_info_new ()), _g_object_unref0 (self->priv->calltip_window), _tmp0_);
-	gtk_window_set_transient_for ((GtkWindow*) self->priv->calltip_window, (GtkWindow*) application_get_active_window (app));
+	_tmp0_ = application_get_default ();
+	app = _tmp0_;
+	_tmp1_ = gtk_source_completion_info_new ();
+	_g_object_unref0 (self->priv->calltip_window);
+	self->priv->calltip_window = g_object_ref_sink (_tmp1_);
+	_tmp2_ = application_get_active_window (app);
+	gtk_window_set_transient_for ((GtkWindow*) self->priv->calltip_window, (GtkWindow*) _tmp2_);
 	gtk_source_completion_info_set_sizing (self->priv->calltip_window, 800, 200, TRUE, TRUE);
-	self->priv->calltip_window_label = (_tmp1_ = g_object_ref_sink ((GtkLabel*) gtk_label_new (NULL)), _g_object_unref0 (self->priv->calltip_window_label), _tmp1_);
+	_tmp3_ = (GtkLabel*) gtk_label_new (NULL);
+	_g_object_unref0 (self->priv->calltip_window_label);
+	self->priv->calltip_window_label = g_object_ref_sink (_tmp3_);
 	gtk_source_completion_info_set_widget (self->priv->calltip_window, (GtkWidget*) self->priv->calltip_window_label);
 	_g_object_unref0 (app);
 }
 
 
-static void completion_provider_show_calltip_info (CompletionProvider* self, const char* markup) {
-	Application* _tmp0_;
-	MainWindow* _tmp1_;
+static void completion_provider_show_calltip_info (CompletionProvider* self, const gchar* markup) {
+	Application* _tmp0_ = NULL;
+	Application* _tmp1_;
+	MainWindow* _tmp2_ = NULL;
+	MainWindow* _tmp3_;
+	MainWindow* _tmp4_;
 	MainWindow* win;
 	GtkTextIter pos = {0};
+	DocumentView* _tmp5_ = NULL;
+	GtkTextBuffer* _tmp6_ = NULL;
+	GtkTextBuffer* _tmp7_;
 	GtkTextBuffer* buffer;
-	char* text;
+	GtkTextMark* _tmp8_ = NULL;
+	GtkTextIter _tmp9_ = {0};
+	gchar* _tmp10_ = NULL;
+	gchar* text;
+	DocumentView* _tmp18_ = NULL;
 	g_return_if_fail (self != NULL);
 	g_return_if_fail (markup != NULL);
 	if (self->priv->calltip_window == NULL) {
 		completion_provider_init_calltip_window (self);
 	}
-	win = (_tmp1_ = _g_object_ref0 (application_get_active_window (_tmp0_ = application_get_default ())), _g_object_unref0 (_tmp0_), _tmp1_);
-	buffer = _g_object_ref0 (gtk_text_view_get_buffer ((GtkTextView*) main_window_get_active_view (win)));
-	gtk_text_buffer_get_iter_at_mark (buffer, &pos, gtk_text_buffer_get_insert (buffer));
-	text = completion_provider_get_text_line_at_iter (self, &pos);
+	_tmp0_ = application_get_default ();
+	_tmp1_ = _tmp0_;
+	_tmp2_ = application_get_active_window (_tmp1_);
+	_tmp3_ = _g_object_ref0 (_tmp2_);
+	_tmp4_ = _tmp3_;
+	_g_object_unref0 (_tmp1_);
+	win = _tmp4_;
+	_tmp5_ = main_window_get_active_view (win);
+	_tmp6_ = gtk_text_view_get_buffer ((GtkTextView*) _tmp5_);
+	_tmp7_ = _g_object_ref0 (_tmp6_);
+	buffer = _tmp7_;
+	_tmp8_ = gtk_text_buffer_get_insert (buffer);
+	gtk_text_buffer_get_iter_at_mark (buffer, &_tmp9_, _tmp8_);
+	pos = _tmp9_;
+	_tmp10_ = completion_provider_get_text_line_at_iter (self, &pos);
+	text = _tmp10_;
 	{
+		gint _tmp11_;
 		glong i;
-		i = string_get_length (text) - 1;
+		_tmp11_ = strlen (text);
+		i = (glong) (_tmp11_ - 1);
 		{
-			gboolean _tmp2_;
-			_tmp2_ = TRUE;
+			gboolean _tmp12_;
+			_tmp12_ = TRUE;
 			while (TRUE) {
-				gboolean _tmp3_ = FALSE;
-				if (!_tmp2_) {
+				gboolean _tmp13_ = FALSE;
+				gchar _tmp14_;
+				if (!_tmp12_) {
 					i--;
 				}
-				_tmp2_ = FALSE;
+				_tmp12_ = FALSE;
 				if (!(i >= 0)) {
 					break;
 				}
-				if (g_utf8_get_char (g_utf8_offset_to_pointer (text, i)) == '[') {
-					_tmp3_ = TRUE;
+				_tmp14_ = string_get (text, i);
+				if (_tmp14_ == '[') {
+					_tmp13_ = TRUE;
 				} else {
-					_tmp3_ = g_utf8_get_char (g_utf8_offset_to_pointer (text, i)) == '{';
+					gchar _tmp15_;
+					_tmp15_ = string_get (text, i);
+					_tmp13_ = _tmp15_ == '{';
 				}
-				if (_tmp3_) {
-					if (completion_provider_char_is_escaped (self, text, i)) {
+				if (_tmp13_) {
+					gboolean _tmp16_;
+					gint _tmp17_;
+					_tmp16_ = completion_provider_char_is_escaped (self, text, i);
+					if (_tmp16_) {
 						continue;
 					}
-					gtk_text_iter_backward_chars (&pos, (gint) ((string_get_length (text) - 1) - i));
+					_tmp17_ = strlen (text);
+					gtk_text_iter_backward_chars (&pos, (gint) ((_tmp17_ - 1) - i));
 					break;
 				}
 			}
@@ -1057,7 +1335,8 @@ static void completion_provider_show_calltip_info (CompletionProvider* self, con
 	}
 	gtk_label_set_markup (self->priv->calltip_window_label, markup);
 	gtk_window_set_transient_for ((GtkWindow*) self->priv->calltip_window, (GtkWindow*) win);
-	gtk_source_completion_info_move_to_iter (self->priv->calltip_window, (GtkTextView*) main_window_get_active_view (win), &pos);
+	_tmp18_ = main_window_get_active_view (win);
+	gtk_source_completion_info_move_to_iter (self->priv->calltip_window, (GtkTextView*) _tmp18_, &pos);
 	gtk_widget_show_all ((GtkWidget*) self->priv->calltip_window);
 	_g_free0 (text);
 	_g_object_unref0 (buffer);
@@ -1074,267 +1353,333 @@ void completion_provider_hide_calltip_window (CompletionProvider* self) {
 }
 
 
-static void _vala_array_add13 (CompletionProviderCompletionChoice** array, int* length, int* size, const CompletionProviderCompletionChoice* value) {
-	if ((*length) == (*size)) {
-		*size = (*size) ? (2 * (*size)) : 4;
-		*array = g_renew (CompletionProviderCompletionChoice, *array, *size);
-	}
-	(*array)[(*length)++] = *value;
-}
-
-
-static void completion_provider_parser_start (CompletionProvider* self, GMarkupParseContext* context, const char* name, char** attr_names, int attr_names_length1, char** attr_values, int attr_values_length1, GError** error) {
-	const char* _tmp32_;
-	GQuark _tmp33_;
-	static GQuark _tmp33__label0 = 0;
-	static GQuark _tmp33__label1 = 0;
-	static GQuark _tmp33__label2 = 0;
-	static GQuark _tmp33__label3 = 0;
-	static GQuark _tmp33__label4 = 0;
-	static GQuark _tmp33__label5 = 0;
+static void completion_provider_parser_start (CompletionProvider* self, GMarkupParseContext* context, const gchar* name, gchar** attr_names, int attr_names_length1, gchar** attr_values, int attr_values_length1, GError** error) {
+	const gchar* _tmp0_;
+	GQuark _tmp1_;
+	static GQuark _tmp1__label0 = 0;
+	static GQuark _tmp1__label1 = 0;
+	static GQuark _tmp1__label2 = 0;
+	static GQuark _tmp1__label3 = 0;
+	static GQuark _tmp1__label4 = 0;
+	static GQuark _tmp1__label5 = 0;
+	static GQuark _tmp1__label6 = 0;
+	static GQuark _tmp1__label7 = 0;
 	GError * _inner_error_ = NULL;
 	g_return_if_fail (self != NULL);
 	g_return_if_fail (context != NULL);
 	g_return_if_fail (name != NULL);
-	_tmp32_ = name;
-	_tmp33_ = (NULL == _tmp32_) ? 0 : g_quark_from_string (_tmp32_);
-	if (_tmp33_ == ((0 != _tmp33__label0) ? _tmp33__label0 : (_tmp33__label0 = g_quark_from_static_string ("commands"))))
-	switch (0) {
-		default:
-		{
-			break;
+	_tmp0_ = name;
+	_tmp1_ = (NULL == _tmp0_) ? 0 : g_quark_from_string (_tmp0_);
+	if (_tmp1_ == ((0 != _tmp1__label0) ? _tmp1__label0 : (_tmp1__label0 = g_quark_from_static_string ("commands")))) {
+		switch (0) {
+			default:
+			{
+				break;
+			}
 		}
-	} else if (_tmp33_ == ((0 != _tmp33__label1) ? _tmp33__label1 : (_tmp33__label1 = g_quark_from_static_string ("command"))))
-	switch (0) {
-		default:
-		{
-			CompletionProviderCompletionCommand _tmp0_ = {0};
-			CompletionProviderCompletionCommand _tmp1_;
-			self->priv->current_command = (_tmp1_ = (memset (&_tmp0_, 0, sizeof (CompletionProviderCompletionCommand)), _tmp0_), completion_provider_completion_command_destroy (&self->priv->current_command), _tmp1_);
+	} else if (_tmp1_ == ((0 != _tmp1__label1) ? _tmp1__label1 : (_tmp1__label1 = g_quark_from_static_string ("command")))) {
+		switch (0) {
+			default:
 			{
-				gint i;
-				i = 0;
+				CompletionProviderCompletionCommand _tmp2_ = {0};
+				CompletionProviderCompletionCommand _tmp3_ = {0};
+				memset (&_tmp2_, 0, sizeof (CompletionProviderCompletionCommand));
+				_tmp3_ = _tmp2_;
+				completion_provider_completion_command_destroy (&self->priv->current_command);
+				self->priv->current_command = _tmp3_;
 				{
-					gboolean _tmp2_;
-					_tmp2_ = TRUE;
-					while (TRUE) {
-						const char* _tmp8_;
-						GQuark _tmp9_;
-						static GQuark _tmp9__label0 = 0;
-						static GQuark _tmp9__label1 = 0;
-						static GQuark _tmp9__label2 = 0;
-						if (!_tmp2_) {
-							i++;
-						}
-						_tmp2_ = FALSE;
-						if (!(i < attr_names_length1)) {
-							break;
-						}
-						_tmp8_ = attr_names[i];
-						_tmp9_ = (NULL == _tmp8_) ? 0 : g_quark_from_string (_tmp8_);
-						if (_tmp9_ == ((0 != _tmp9__label0) ? _tmp9__label0 : (_tmp9__label0 = g_quark_from_static_string ("name"))))
-						switch (0) {
-							default:
-							{
-								char* _tmp3_;
-								self->priv->current_command.name = (_tmp3_ = g_strconcat ("\\", attr_values[i], NULL), _g_free0 (self->priv->current_command.name), _tmp3_);
-								break;
-							}
-						} else if (_tmp9_ == ((0 != _tmp9__label1) ? _tmp9__label1 : (_tmp9__label1 = g_quark_from_static_string ("package"))))
-						switch (0) {
-							default:
-							{
-								char* _tmp4_;
-								self->priv->current_command.package = (_tmp4_ = g_strdup (attr_values[i]), _g_free0 (self->priv->current_command.package), _tmp4_);
-								break;
+					gint i;
+					i = 0;
+					{
+						gboolean _tmp4_;
+						_tmp4_ = TRUE;
+						while (TRUE) {
+							const gchar* _tmp5_;
+							GQuark _tmp6_;
+							static GQuark _tmp6__label0 = 0;
+							static GQuark _tmp6__label1 = 0;
+							static GQuark _tmp6__label2 = 0;
+							if (!_tmp4_) {
+								i++;
 							}
-						} else if (_tmp9_ == ((0 != _tmp9__label2) ? _tmp9__label2 : (_tmp9__label2 = g_quark_from_static_string ("environment"))))
-						switch (0) {
-							default:
-							{
+							_tmp4_ = FALSE;
+							if (!(i < attr_names_length1)) {
 								break;
 							}
-						} else
-						switch (0) {
-							default:
-							{
-								char* _tmp5_;
-								char* _tmp6_;
-								GError* _tmp7_;
-								_inner_error_ = (_tmp7_ = g_error_new_literal (G_MARKUP_ERROR, G_MARKUP_ERROR_UNKNOWN_ATTRIBUTE, _tmp6_ = g_strconcat (_tmp5_ = g_strconcat ("unknown command attribute \"", attr_names[i], NULL), "\"", NULL)), _g_free0 (_tmp6_), _g_free0 (_tmp5_), _tmp7_);
-								{
-									if (_inner_error_->domain == G_MARKUP_ERROR) {
-										g_propagate_error (error, _inner_error_);
-										return;
-									} else {
-										g_critical ("file %s: line %d: uncaught error: %s (%s, %d)", __FILE__, __LINE__, _inner_error_->message, g_quark_to_string (_inner_error_->domain), _inner_error_->code);
-										g_clear_error (&_inner_error_);
-										return;
+							_tmp5_ = attr_names[i];
+							_tmp6_ = (NULL == _tmp5_) ? 0 : g_quark_from_string (_tmp5_);
+							if (_tmp6_ == ((0 != _tmp6__label0) ? _tmp6__label0 : (_tmp6__label0 = g_quark_from_static_string ("name")))) {
+								switch (0) {
+									default:
+									{
+										gchar* _tmp7_;
+										_tmp7_ = g_strconcat ("\\", attr_values[i], NULL);
+										_g_free0 (self->priv->current_command.name);
+										self->priv->current_command.name = _tmp7_;
+										break;
+									}
+								}
+							} else if (_tmp6_ == ((0 != _tmp6__label1) ? _tmp6__label1 : (_tmp6__label1 = g_quark_from_static_string ("package")))) {
+								switch (0) {
+									default:
+									{
+										gchar* _tmp8_;
+										_tmp8_ = g_strdup (attr_values[i]);
+										_g_free0 (self->priv->current_command.package);
+										self->priv->current_command.package = _tmp8_;
+										break;
+									}
+								}
+							} else if (_tmp6_ == ((0 != _tmp6__label2) ? _tmp6__label2 : (_tmp6__label2 = g_quark_from_static_string ("environment")))) {
+								switch (0) {
+									default:
+									{
+										break;
+									}
+								}
+							} else {
+								switch (0) {
+									default:
+									{
+										gchar* _tmp9_;
+										gchar* _tmp10_;
+										gchar* _tmp11_;
+										gchar* _tmp12_;
+										GError* _tmp13_ = NULL;
+										GError* _tmp14_;
+										_tmp9_ = g_strconcat ("unknown command attribute \"", attr_names[i], NULL);
+										_tmp10_ = _tmp9_;
+										_tmp11_ = g_strconcat (_tmp10_, "\"", NULL);
+										_tmp12_ = _tmp11_;
+										_tmp13_ = g_error_new_literal (G_MARKUP_ERROR, G_MARKUP_ERROR_UNKNOWN_ATTRIBUTE, _tmp12_);
+										_tmp14_ = _tmp13_;
+										_g_free0 (_tmp12_);
+										_g_free0 (_tmp10_);
+										_inner_error_ = _tmp14_;
+										if (_inner_error_->domain == G_MARKUP_ERROR) {
+											g_propagate_error (error, _inner_error_);
+											return;
+										} else {
+											g_critical ("file %s: line %d: uncaught error: %s (%s, %d)", __FILE__, __LINE__, _inner_error_->message, g_quark_to_string (_inner_error_->domain), _inner_error_->code);
+											g_clear_error (&_inner_error_);
+											return;
+										}
 									}
 								}
 							}
 						}
 					}
 				}
+				break;
 			}
-			break;
 		}
-	} else if (_tmp33_ == ((0 != _tmp33__label2) ? _tmp33__label2 : (_tmp33__label2 = g_quark_from_static_string ("argument"))))
-	switch (0) {
-		default:
-		{
-			CompletionProviderCompletionArgument _tmp10_ = {0};
-			CompletionProviderCompletionArgument _tmp11_;
-			self->priv->current_arg = (_tmp11_ = (memset (&_tmp10_, 0, sizeof (CompletionProviderCompletionArgument)), _tmp10_), completion_provider_completion_argument_destroy (&self->priv->current_arg), _tmp11_);
-			self->priv->current_arg.optional = FALSE;
+	} else if (_tmp1_ == ((0 != _tmp1__label2) ? _tmp1__label2 : (_tmp1__label2 = g_quark_from_static_string ("argument")))) {
+		switch (0) {
+			default:
 			{
-				gint i;
-				i = 0;
+				CompletionProviderCompletionArgument _tmp15_ = {0};
+				CompletionProviderCompletionArgument _tmp16_ = {0};
+				memset (&_tmp15_, 0, sizeof (CompletionProviderCompletionArgument));
+				_tmp16_ = _tmp15_;
+				completion_provider_completion_argument_destroy (&self->priv->current_arg);
+				self->priv->current_arg = _tmp16_;
+				self->priv->current_arg.optional = FALSE;
 				{
-					gboolean _tmp12_;
-					_tmp12_ = TRUE;
-					while (TRUE) {
-						const char* _tmp17_;
-						GQuark _tmp18_;
-						static GQuark _tmp18__label0 = 0;
-						static GQuark _tmp18__label1 = 0;
-						if (!_tmp12_) {
-							i++;
-						}
-						_tmp12_ = FALSE;
-						if (!(i < attr_names_length1)) {
-							break;
-						}
-						_tmp17_ = attr_names[i];
-						_tmp18_ = (NULL == _tmp17_) ? 0 : g_quark_from_string (_tmp17_);
-						if (_tmp18_ == ((0 != _tmp18__label0) ? _tmp18__label0 : (_tmp18__label0 = g_quark_from_static_string ("label"))))
-						switch (0) {
-							default:
-							{
-								char* _tmp13_;
-								self->priv->current_arg.label = (_tmp13_ = g_strdup (attr_values[i]), _g_free0 (self->priv->current_arg.label), _tmp13_);
-								break;
+					gint i;
+					i = 0;
+					{
+						gboolean _tmp17_;
+						_tmp17_ = TRUE;
+						while (TRUE) {
+							const gchar* _tmp18_;
+							GQuark _tmp19_;
+							static GQuark _tmp19__label0 = 0;
+							static GQuark _tmp19__label1 = 0;
+							if (!_tmp17_) {
+								i++;
 							}
-						} else if (_tmp18_ == ((0 != _tmp18__label1) ? _tmp18__label1 : (_tmp18__label1 = g_quark_from_static_string ("type"))))
-						switch (0) {
-							default:
-							{
-								self->priv->current_arg.optional = _vala_strcmp0 (attr_values[i], "optional") == 0;
+							_tmp17_ = FALSE;
+							if (!(i < attr_names_length1)) {
 								break;
 							}
-						} else
-						switch (0) {
-							default:
-							{
-								char* _tmp14_;
-								char* _tmp15_;
-								GError* _tmp16_;
-								_inner_error_ = (_tmp16_ = g_error_new_literal (G_MARKUP_ERROR, G_MARKUP_ERROR_UNKNOWN_ATTRIBUTE, _tmp15_ = g_strconcat (_tmp14_ = g_strconcat ("unknown argument attribute \"", attr_names[i], NULL), "\"", NULL)), _g_free0 (_tmp15_), _g_free0 (_tmp14_), _tmp16_);
-								{
-									if (_inner_error_->domain == G_MARKUP_ERROR) {
-										g_propagate_error (error, _inner_error_);
-										return;
-									} else {
-										g_critical ("file %s: line %d: uncaught error: %s (%s, %d)", __FILE__, __LINE__, _inner_error_->message, g_quark_to_string (_inner_error_->domain), _inner_error_->code);
-										g_clear_error (&_inner_error_);
-										return;
+							_tmp18_ = attr_names[i];
+							_tmp19_ = (NULL == _tmp18_) ? 0 : g_quark_from_string (_tmp18_);
+							if (_tmp19_ == ((0 != _tmp19__label0) ? _tmp19__label0 : (_tmp19__label0 = g_quark_from_static_string ("label")))) {
+								switch (0) {
+									default:
+									{
+										gchar* _tmp20_;
+										_tmp20_ = g_strdup (attr_values[i]);
+										_g_free0 (self->priv->current_arg.label);
+										self->priv->current_arg.label = _tmp20_;
+										break;
+									}
+								}
+							} else if (_tmp19_ == ((0 != _tmp19__label1) ? _tmp19__label1 : (_tmp19__label1 = g_quark_from_static_string ("type")))) {
+								switch (0) {
+									default:
+									{
+										self->priv->current_arg.optional = g_strcmp0 (attr_values[i], "optional") == 0;
+										break;
+									}
+								}
+							} else {
+								switch (0) {
+									default:
+									{
+										gchar* _tmp21_;
+										gchar* _tmp22_;
+										gchar* _tmp23_;
+										gchar* _tmp24_;
+										GError* _tmp25_ = NULL;
+										GError* _tmp26_;
+										_tmp21_ = g_strconcat ("unknown argument attribute \"", attr_names[i], NULL);
+										_tmp22_ = _tmp21_;
+										_tmp23_ = g_strconcat (_tmp22_, "\"", NULL);
+										_tmp24_ = _tmp23_;
+										_tmp25_ = g_error_new_literal (G_MARKUP_ERROR, G_MARKUP_ERROR_UNKNOWN_ATTRIBUTE, _tmp24_);
+										_tmp26_ = _tmp25_;
+										_g_free0 (_tmp24_);
+										_g_free0 (_tmp22_);
+										_inner_error_ = _tmp26_;
+										if (_inner_error_->domain == G_MARKUP_ERROR) {
+											g_propagate_error (error, _inner_error_);
+											return;
+										} else {
+											g_critical ("file %s: line %d: uncaught error: %s (%s, %d)", __FILE__, __LINE__, _inner_error_->message, g_quark_to_string (_inner_error_->domain), _inner_error_->code);
+											g_clear_error (&_inner_error_);
+											return;
+										}
 									}
 								}
 							}
 						}
 					}
 				}
+				break;
 			}
-			break;
 		}
-	} else if (_tmp33_ == ((0 != _tmp33__label3) ? _tmp33__label3 : (_tmp33__label3 = g_quark_from_static_string ("choice"))))
-	switch (0) {
-		default:
-		{
-			CompletionProviderCompletionChoice choice = {0};
-			CompletionProviderCompletionChoice _tmp27_ = {0};
-			CompletionProviderCompletionChoice _tmp28_;
-			memset (&choice, 0, sizeof (CompletionProviderCompletionChoice));
+	} else if (_tmp1_ == ((0 != _tmp1__label3) ? _tmp1__label3 : (_tmp1__label3 = g_quark_from_static_string ("choice")))) {
+		switch (0) {
+			default:
 			{
-				gint i;
-				i = 0;
+				CompletionProviderCompletionChoice _tmp27_ = {0};
+				CompletionProviderCompletionChoice _tmp28_ = {0};
+				memset (&_tmp27_, 0, sizeof (CompletionProviderCompletionChoice));
+				_tmp28_ = _tmp27_;
+				completion_provider_completion_choice_destroy (&self->priv->current_choice);
+				self->priv->current_choice = _tmp28_;
 				{
-					gboolean _tmp19_;
-					_tmp19_ = TRUE;
-					while (TRUE) {
-						const char* _tmp25_;
-						GQuark _tmp26_;
-						static GQuark _tmp26__label0 = 0;
-						static GQuark _tmp26__label1 = 0;
-						if (!_tmp19_) {
-							i++;
-						}
-						_tmp19_ = FALSE;
-						if (!(i < attr_names_length1)) {
-							break;
-						}
-						_tmp25_ = attr_names[i];
-						_tmp26_ = (NULL == _tmp25_) ? 0 : g_quark_from_string (_tmp25_);
-						if (_tmp26_ == ((0 != _tmp26__label0) ? _tmp26__label0 : (_tmp26__label0 = g_quark_from_static_string ("name"))))
-						switch (0) {
-							default:
-							{
-								char* _tmp20_;
-								choice.name = (_tmp20_ = g_strdup (attr_values[i]), _g_free0 (choice.name), _tmp20_);
-								break;
+					gint i;
+					i = 0;
+					{
+						gboolean _tmp29_;
+						_tmp29_ = TRUE;
+						while (TRUE) {
+							const gchar* _tmp30_;
+							GQuark _tmp31_;
+							static GQuark _tmp31__label0 = 0;
+							static GQuark _tmp31__label1 = 0;
+							if (!_tmp29_) {
+								i++;
 							}
-						} else if (_tmp26_ == ((0 != _tmp26__label1) ? _tmp26__label1 : (_tmp26__label1 = g_quark_from_static_string ("package"))))
-						switch (0) {
-							default:
-							{
-								char* _tmp21_;
-								choice.package = (_tmp21_ = g_strdup (attr_values[i]), _g_free0 (choice.package), _tmp21_);
+							_tmp29_ = FALSE;
+							if (!(i < attr_names_length1)) {
 								break;
 							}
-						} else
-						switch (0) {
-							default:
-							{
-								char* _tmp22_;
-								char* _tmp23_;
-								GError* _tmp24_;
-								_inner_error_ = (_tmp24_ = g_error_new_literal (G_MARKUP_ERROR, G_MARKUP_ERROR_UNKNOWN_ATTRIBUTE, _tmp23_ = g_strconcat (_tmp22_ = g_strconcat ("unknown choice attribute \"", attr_names[i], NULL), "\"", NULL)), _g_free0 (_tmp23_), _g_free0 (_tmp22_), _tmp24_);
-								{
-									if (_inner_error_->domain == G_MARKUP_ERROR) {
-										g_propagate_error (error, _inner_error_);
-										completion_provider_completion_choice_destroy (&choice);
-										return;
-									} else {
-										completion_provider_completion_choice_destroy (&choice);
-										g_critical ("file %s: line %d: uncaught error: %s (%s, %d)", __FILE__, __LINE__, _inner_error_->message, g_quark_to_string (_inner_error_->domain), _inner_error_->code);
-										g_clear_error (&_inner_error_);
-										return;
+							_tmp30_ = attr_names[i];
+							_tmp31_ = (NULL == _tmp30_) ? 0 : g_quark_from_string (_tmp30_);
+							if (_tmp31_ == ((0 != _tmp31__label0) ? _tmp31__label0 : (_tmp31__label0 = g_quark_from_static_string ("name")))) {
+								switch (0) {
+									default:
+									{
+										gchar* _tmp32_;
+										_tmp32_ = g_strdup (attr_values[i]);
+										_g_free0 (self->priv->current_choice.name);
+										self->priv->current_choice.name = _tmp32_;
+										break;
+									}
+								}
+							} else if (_tmp31_ == ((0 != _tmp31__label1) ? _tmp31__label1 : (_tmp31__label1 = g_quark_from_static_string ("package")))) {
+								switch (0) {
+									default:
+									{
+										gchar* _tmp33_;
+										_tmp33_ = g_strdup (attr_values[i]);
+										_g_free0 (self->priv->current_choice.package);
+										self->priv->current_choice.package = _tmp33_;
+										break;
+									}
+								}
+							} else {
+								switch (0) {
+									default:
+									{
+										gchar* _tmp34_;
+										gchar* _tmp35_;
+										gchar* _tmp36_;
+										gchar* _tmp37_;
+										GError* _tmp38_ = NULL;
+										GError* _tmp39_;
+										_tmp34_ = g_strconcat ("unknown choice attribute \"", attr_names[i], NULL);
+										_tmp35_ = _tmp34_;
+										_tmp36_ = g_strconcat (_tmp35_, "\"", NULL);
+										_tmp37_ = _tmp36_;
+										_tmp38_ = g_error_new_literal (G_MARKUP_ERROR, G_MARKUP_ERROR_UNKNOWN_ATTRIBUTE, _tmp37_);
+										_tmp39_ = _tmp38_;
+										_g_free0 (_tmp37_);
+										_g_free0 (_tmp35_);
+										_inner_error_ = _tmp39_;
+										if (_inner_error_->domain == G_MARKUP_ERROR) {
+											g_propagate_error (error, _inner_error_);
+											return;
+										} else {
+											g_critical ("file %s: line %d: uncaught error: %s (%s, %d)", __FILE__, __LINE__, _inner_error_->message, g_quark_to_string (_inner_error_->domain), _inner_error_->code);
+											g_clear_error (&_inner_error_);
+											return;
+										}
 									}
 								}
 							}
 						}
 					}
 				}
+				break;
 			}
-			_vala_array_add13 (&self->priv->current_arg.choices, &self->priv->current_arg.choices_length1, &self->priv->current_arg._choices_size_, (_tmp28_ = (completion_provider_completion_choice_copy (&choice, &_tmp27_), _tmp27_), &_tmp28_));
-			completion_provider_completion_choice_destroy (&choice);
-			break;
 		}
-	} else if ((_tmp33_ == ((0 != _tmp33__label4) ? _tmp33__label4 : (_tmp33__label4 = g_quark_from_static_string ("placeholder")))) || (_tmp33_ == ((0 != _tmp33__label5) ? _tmp33__label5 : (_tmp33__label5 = g_quark_from_static_string ("component")))))
-	switch (0) {
-		default:
-		{
-			break;
+	} else if ((_tmp1_ == ((0 != _tmp1__label4) ? _tmp1__label4 : (_tmp1__label4 = g_quark_from_static_string ("insert")))) || (_tmp1_ == ((0 != _tmp1__label5) ? _tmp1__label5 : (_tmp1__label5 = g_quark_from_static_string ("insert_after"))))) {
+		switch (0) {
+			default:
+			{
+				break;
+			}
 		}
-	} else
-	switch (0) {
-		default:
-		{
-			char* _tmp29_;
-			char* _tmp30_;
-			GError* _tmp31_;
-			_inner_error_ = (_tmp31_ = g_error_new_literal (G_MARKUP_ERROR, G_MARKUP_ERROR_UNKNOWN_ELEMENT, _tmp30_ = g_strconcat (_tmp29_ = g_strconcat ("unknown element \"", name, NULL), "\"", NULL)), _g_free0 (_tmp30_), _g_free0 (_tmp29_), _tmp31_);
+	} else if ((_tmp1_ == ((0 != _tmp1__label6) ? _tmp1__label6 : (_tmp1__label6 = g_quark_from_static_string ("placeholder")))) || (_tmp1_ == ((0 != _tmp1__label7) ? _tmp1__label7 : (_tmp1__label7 = g_quark_from_static_string ("component"))))) {
+		switch (0) {
+			default:
+			{
+				break;
+			}
+		}
+	} else {
+		switch (0) {
+			default:
 			{
+				gchar* _tmp40_;
+				gchar* _tmp41_;
+				gchar* _tmp42_;
+				gchar* _tmp43_;
+				GError* _tmp44_ = NULL;
+				GError* _tmp45_;
+				_tmp40_ = g_strconcat ("unknown element \"", name, NULL);
+				_tmp41_ = _tmp40_;
+				_tmp42_ = g_strconcat (_tmp41_, "\"", NULL);
+				_tmp43_ = _tmp42_;
+				_tmp44_ = g_error_new_literal (G_MARKUP_ERROR, G_MARKUP_ERROR_UNKNOWN_ELEMENT, _tmp43_);
+				_tmp45_ = _tmp44_;
+				_g_free0 (_tmp43_);
+				_g_free0 (_tmp41_);
+				_inner_error_ = _tmp45_;
 				if (_inner_error_->domain == G_MARKUP_ERROR) {
 					g_propagate_error (error, _inner_error_);
 					return;
@@ -1349,7 +1694,7 @@ static void completion_provider_parser_start (CompletionProvider* self, GMarkupP
 }
 
 
-static void _vala_array_add14 (CompletionProviderCompletionArgument** array, int* length, int* size, const CompletionProviderCompletionArgument* value) {
+static void _vala_array_add12 (CompletionProviderCompletionArgument** array, int* length, int* size, const CompletionProviderCompletionArgument* value) {
 	if ((*length) == (*size)) {
 		*size = (*size) ? (2 * (*size)) : 4;
 		*array = g_renew (CompletionProviderCompletionArgument, *array, *size);
@@ -1358,50 +1703,137 @@ static void _vala_array_add14 (CompletionProviderCompletionArgument** array, int
 }
 
 
-static void completion_provider_parser_end (CompletionProvider* self, GMarkupParseContext* context, const char* name, GError** error) {
-	const char* _tmp6_;
-	GQuark _tmp7_;
-	static GQuark _tmp7__label0 = 0;
-	static GQuark _tmp7__label1 = 0;
+static void _vala_array_add13 (CompletionProviderCompletionChoice** array, int* length, int* size, const CompletionProviderCompletionChoice* value) {
+	if ((*length) == (*size)) {
+		*size = (*size) ? (2 * (*size)) : 4;
+		*array = g_renew (CompletionProviderCompletionChoice, *array, *size);
+	}
+	(*array)[(*length)++] = *value;
+}
+
+
+static void completion_provider_parser_end (CompletionProvider* self, GMarkupParseContext* context, const gchar* name, GError** error) {
+	const gchar* _tmp0_;
+	GQuark _tmp1_;
+	static GQuark _tmp1__label0 = 0;
+	static GQuark _tmp1__label1 = 0;
+	static GQuark _tmp1__label2 = 0;
 	g_return_if_fail (self != NULL);
 	g_return_if_fail (context != NULL);
 	g_return_if_fail (name != NULL);
-	_tmp6_ = name;
-	_tmp7_ = (NULL == _tmp6_) ? 0 : g_quark_from_string (_tmp6_);
-	if (_tmp7_ == ((0 != _tmp7__label0) ? _tmp7__label0 : (_tmp7__label0 = g_quark_from_static_string ("command"))))
-	switch (0) {
-		default:
-		{
-			GdkPixbuf* _tmp0_;
-			GdkPixbuf* pixbuf;
-			char* _tmp1_;
-			char* _tmp2_;
-			GtkSourceCompletionItem* _tmp3_;
-			GtkSourceCompletionItem* item;
-			_tmp0_ = NULL;
-			if (self->priv->current_command.package != NULL) {
-				_tmp0_ = self->priv->icon_package_required;
-			} else {
-				_tmp0_ = self->priv->icon_normal_cmd;
+	_tmp0_ = name;
+	_tmp1_ = (NULL == _tmp0_) ? 0 : g_quark_from_string (_tmp0_);
+	if (_tmp1_ == ((0 != _tmp1__label0) ? _tmp1__label0 : (_tmp1__label0 = g_quark_from_static_string ("command")))) {
+		switch (0) {
+			default:
+			{
+				GdkPixbuf* _tmp2_ = NULL;
+				GdkPixbuf* _tmp3_;
+				GdkPixbuf* pixbuf;
+				gchar* _tmp4_ = NULL;
+				gchar* _tmp5_;
+				gchar* _tmp6_ = NULL;
+				gchar* _tmp7_;
+				GtkSourceCompletionItem* _tmp8_ = NULL;
+				GtkSourceCompletionItem* _tmp9_;
+				GtkSourceCompletionItem* item;
+				GtkSourceCompletionItem* _tmp10_;
+				if (self->priv->current_command.package != NULL) {
+					_tmp2_ = self->priv->icon_package_required;
+				} else {
+					_tmp2_ = self->priv->icon_normal_cmd;
+				}
+				_tmp3_ = _g_object_ref0 (_tmp2_);
+				pixbuf = _tmp3_;
+				_tmp4_ = completion_provider_get_command_text (self, &self->priv->current_command);
+				_tmp5_ = _tmp4_;
+				_tmp6_ = completion_provider_get_command_info (self, &self->priv->current_command, -1);
+				_tmp7_ = _tmp6_;
+				_tmp8_ = gtk_source_completion_item_new (self->priv->current_command.name, _tmp5_, pixbuf, _tmp7_);
+				_tmp9_ = _tmp8_;
+				_g_free0 (_tmp7_);
+				_g_free0 (_tmp5_);
+				item = _tmp9_;
+				_tmp10_ = _g_object_ref0 (item);
+				self->priv->proposals = g_list_append (self->priv->proposals, _tmp10_);
+				if (self->priv->current_command.args_length1 > 0) {
+					gee_abstract_map_set ((GeeAbstractMap*) self->priv->commands, self->priv->current_command.name, &self->priv->current_command);
+				}
+				_g_object_unref0 (item);
+				_g_object_unref0 (pixbuf);
+				break;
 			}
-			pixbuf = _g_object_ref0 (_tmp0_);
-			item = (_tmp3_ = gtk_source_completion_item_new (self->priv->current_command.name, _tmp1_ = completion_provider_get_command_text (self, &self->priv->current_command), pixbuf, _tmp2_ = completion_provider_get_command_info (self, &self->priv->current_command, -1)), _g_free0 (_tmp2_), _g_free0 (_tmp1_), _tmp3_);
-			self->priv->proposals = g_list_append (self->priv->proposals, _g_object_ref0 (item));
-			if (self->priv->current_command.args_length1 > 0) {
-				gee_abstract_map_set ((GeeAbstractMap*) self->priv->commands, self->priv->current_command.name, &self->priv->current_command);
+		}
+	} else if (_tmp1_ == ((0 != _tmp1__label1) ? _tmp1__label1 : (_tmp1__label1 = g_quark_from_static_string ("argument")))) {
+		switch (0) {
+			default:
+			{
+				CompletionProviderCompletionArgument _tmp11_;
+				CompletionProviderCompletionArgument _tmp12_ = {0};
+				completion_provider_completion_argument_copy (&self->priv->current_arg, &_tmp12_);
+				_tmp11_ = _tmp12_;
+				_vala_array_add12 (&self->priv->current_command.args, &self->priv->current_command.args_length1, &self->priv->current_command._args_size_, &_tmp11_);
+				break;
 			}
-			_g_object_unref0 (item);
-			_g_object_unref0 (pixbuf);
-			break;
 		}
-	} else if (_tmp7_ == ((0 != _tmp7__label1) ? _tmp7__label1 : (_tmp7__label1 = g_quark_from_static_string ("argument"))))
-	switch (0) {
-		default:
-		{
-			CompletionProviderCompletionArgument _tmp4_ = {0};
-			CompletionProviderCompletionArgument _tmp5_;
-			_vala_array_add14 (&self->priv->current_command.args, &self->priv->current_command.args_length1, &self->priv->current_command._args_size_, (_tmp5_ = (completion_provider_completion_argument_copy (&self->priv->current_arg, &_tmp4_), _tmp4_), &_tmp5_));
-			break;
+	} else if (_tmp1_ == ((0 != _tmp1__label2) ? _tmp1__label2 : (_tmp1__label2 = g_quark_from_static_string ("choice")))) {
+		switch (0) {
+			default:
+			{
+				CompletionProviderCompletionChoice _tmp13_;
+				CompletionProviderCompletionChoice _tmp14_ = {0};
+				gboolean _tmp15_ = FALSE;
+				completion_provider_completion_choice_copy (&self->priv->current_choice, &_tmp14_);
+				_tmp13_ = _tmp14_;
+				_vala_array_add13 (&self->priv->current_arg.choices, &self->priv->current_arg.choices_length1, &self->priv->current_arg._choices_size_, &_tmp13_);
+				if (self->priv->current_choice.insert != NULL) {
+					_tmp15_ = TRUE;
+				} else {
+					_tmp15_ = self->priv->current_choice.insert_after != NULL;
+				}
+				if (_tmp15_) {
+					gee_abstract_map_set ((GeeAbstractMap*) self->priv->environments, self->priv->current_choice.name, &self->priv->current_choice);
+				}
+				break;
+			}
+		}
+	}
+}
+
+
+static void completion_provider_parser_text (CompletionProvider* self, GMarkupParseContext* context, const gchar* text, gsize text_len, GError** error) {
+	const gchar* _tmp0_ = NULL;
+	const gchar* _tmp1_;
+	GQuark _tmp2_;
+	static GQuark _tmp2__label0 = 0;
+	static GQuark _tmp2__label1 = 0;
+	g_return_if_fail (self != NULL);
+	g_return_if_fail (context != NULL);
+	g_return_if_fail (text != NULL);
+	_tmp0_ = g_markup_parse_context_get_element (context);
+	_tmp1_ = _tmp0_;
+	_tmp2_ = (NULL == _tmp1_) ? 0 : g_quark_from_string (_tmp1_);
+	if (_tmp2_ == ((0 != _tmp2__label0) ? _tmp2__label0 : (_tmp2__label0 = g_quark_from_static_string ("insert")))) {
+		switch (0) {
+			default:
+			{
+				gchar* _tmp3_;
+				_tmp3_ = g_strdup (text);
+				_g_free0 (self->priv->current_choice.insert);
+				self->priv->current_choice.insert = _tmp3_;
+				break;
+			}
+		}
+	} else if (_tmp2_ == ((0 != _tmp2__label1) ? _tmp2__label1 : (_tmp2__label1 = g_quark_from_static_string ("insert_after")))) {
+		switch (0) {
+			default:
+			{
+				gchar* _tmp4_;
+				_tmp4_ = g_strdup (text);
+				_g_free0 (self->priv->current_choice.insert_after);
+				self->priv->current_choice.insert_after = _tmp4_;
+				break;
+			}
 		}
 	}
 }
@@ -1409,9 +1841,12 @@ static void completion_provider_parser_end (CompletionProvider* self, GMarkupPar
 
 static GList* completion_provider_get_argument_proposals (CompletionProvider* self, CompletionProviderCompletionCommand* cmd, GeeArrayList* arguments) {
 	GList* result = NULL;
-	char* info;
+	gchar* _tmp0_ = NULL;
+	gchar* info;
+	gint _tmp1_;
 	gint num;
-	CompletionProviderCompletionArgument _tmp0_ = {0};
+	CompletionProviderCompletionArgument _tmp2_;
+	CompletionProviderCompletionArgument _tmp3_ = {0};
 	CompletionProviderCompletionArgument arg;
 	GList* items;
 	g_return_val_if_fail (self != NULL, NULL);
@@ -1420,14 +1855,18 @@ static GList* completion_provider_get_argument_proposals (CompletionProvider* se
 		result = NULL;
 		return result;
 	}
-	info = completion_provider_get_command_info (self, cmd, -1);
-	num = completion_provider_get_argument_num (self, (*cmd).args, (*cmd).args_length1, arguments);
+	_tmp0_ = completion_provider_get_command_info (self, cmd, -1);
+	info = _tmp0_;
+	_tmp1_ = completion_provider_get_argument_num (self, (*cmd).args, (*cmd).args_length1, arguments);
+	num = _tmp1_;
 	if (num == (-1)) {
 		result = NULL;
 		_g_free0 (info);
 		return result;
 	}
-	arg = (completion_provider_completion_argument_copy (&(*cmd).args[num - 1], &_tmp0_), _tmp0_);
+	completion_provider_completion_argument_copy (&(*cmd).args[num - 1], &_tmp3_);
+	_tmp2_ = _tmp3_;
+	arg = _tmp2_;
 	items = NULL;
 	{
 		CompletionProviderCompletionChoice* choice_collection;
@@ -1436,36 +1875,55 @@ static GList* completion_provider_get_argument_proposals (CompletionProvider* se
 		choice_collection = arg.choices;
 		choice_collection_length1 = arg.choices_length1;
 		for (choice_it = 0; choice_it < arg.choices_length1; choice_it = choice_it + 1) {
-			CompletionProviderCompletionChoice _tmp7_ = {0};
+			CompletionProviderCompletionChoice _tmp4_;
+			CompletionProviderCompletionChoice _tmp5_ = {0};
 			CompletionProviderCompletionChoice choice;
-			choice = (completion_provider_completion_choice_copy (&choice_collection[choice_it], &_tmp7_), _tmp7_);
+			completion_provider_completion_choice_copy (&choice_collection[choice_it], &_tmp5_);
+			_tmp4_ = _tmp5_;
+			choice = _tmp4_;
 			{
-				char* info2;
-				GdkPixbuf* pixbuf;
-				char* _tmp5_;
+				gchar* info2;
+				GdkPixbuf* pixbuf = NULL;
+				gchar* _tmp11_;
+				gchar* _tmp12_;
+				GtkSourceCompletionItem* _tmp14_ = NULL;
 				GtkSourceCompletionItem* item;
+				GtkSourceCompletionItem* _tmp15_;
 				info2 = NULL;
-				pixbuf = NULL;
 				if (choice.package != NULL) {
-					char* _tmp1_;
-					char* _tmp2_;
-					GdkPixbuf* _tmp3_;
-					info2 = (_tmp2_ = g_strconcat (_tmp1_ = g_strconcat (info, "\nPackage: ", NULL), choice.package, NULL), _g_free0 (info2), _tmp2_);
-					_g_free0 (_tmp1_);
-					pixbuf = (_tmp3_ = _g_object_ref0 (self->priv->icon_package_required), _g_object_unref0 (pixbuf), _tmp3_);
+					gchar* _tmp6_;
+					gchar* _tmp7_;
+					gchar* _tmp8_;
+					GdkPixbuf* _tmp9_;
+					_tmp6_ = g_strconcat (info, "\nPackage: ", NULL);
+					_tmp7_ = _tmp6_;
+					_tmp8_ = g_strconcat (_tmp7_, choice.package, NULL);
+					_g_free0 (info2);
+					info2 = _tmp8_;
+					_g_free0 (_tmp7_);
+					_tmp9_ = _g_object_ref0 (self->priv->icon_package_required);
+					_g_object_unref0 (pixbuf);
+					pixbuf = _tmp9_;
 				} else {
-					GdkPixbuf* _tmp4_;
-					pixbuf = (_tmp4_ = _g_object_ref0 (self->priv->icon_normal_choice), _g_object_unref0 (pixbuf), _tmp4_);
+					GdkPixbuf* _tmp10_;
+					_tmp10_ = _g_object_ref0 (self->priv->icon_normal_choice);
+					_g_object_unref0 (pixbuf);
+					pixbuf = _tmp10_;
 				}
-				_tmp5_ = g_strdup (info2);
-				if (_tmp5_ == NULL) {
-					char* _tmp6_;
-					_tmp5_ = (_tmp6_ = g_strdup (info), _g_free0 (_tmp5_), _tmp6_);
+				_tmp11_ = g_strdup (info2);
+				_tmp12_ = _tmp11_;
+				if (_tmp12_ == NULL) {
+					gchar* _tmp13_;
+					_tmp13_ = g_strdup (info);
+					_g_free0 (_tmp12_);
+					_tmp12_ = _tmp13_;
 				}
-				item = gtk_source_completion_item_new (choice.name, choice.name, pixbuf, _tmp5_);
-				items = g_list_prepend (items, _g_object_ref0 (item));
+				_tmp14_ = gtk_source_completion_item_new (choice.name, choice.name, pixbuf, _tmp12_);
+				item = _tmp14_;
+				_tmp15_ = _g_object_ref0 (item);
+				items = g_list_prepend (items, _tmp15_);
 				_g_object_unref0 (item);
-				_g_free0 (_tmp5_);
+				_g_free0 (_tmp12_);
 				_g_object_unref0 (pixbuf);
 				_g_free0 (info2);
 				completion_provider_completion_choice_destroy (&choice);
@@ -1488,24 +1946,37 @@ static GList* completion_provider_get_argument_proposals (CompletionProvider* se
 
 static gint completion_provider_get_argument_num (CompletionProvider* self, CompletionProviderCompletionArgument* all_args, int all_args_length1, GeeArrayList* args) {
 	gint result = 0;
+	gint _tmp0_;
 	gint num;
 	g_return_val_if_fail (self != NULL, 0);
 	g_return_val_if_fail (args != NULL, 0);
-	g_return_val_if_fail (gee_collection_get_size ((GeeCollection*) args) <= all_args_length1, -1);
+	_tmp0_ = gee_collection_get_size ((GeeCollection*) args);
+	g_return_val_if_fail (_tmp0_ <= all_args_length1, -1);
 	num = 0;
 	{
-		GeeIterator* _arg_it;
-		_arg_it = gee_abstract_collection_iterator ((GeeAbstractCollection*) args);
+		GeeArrayList* _tmp1_;
+		GeeArrayList* _arg_list;
+		gint _tmp2_;
+		gint _arg_size;
+		gint _arg_index;
+		_tmp1_ = _g_object_ref0 (args);
+		_arg_list = _tmp1_;
+		_tmp2_ = gee_collection_get_size ((GeeCollection*) _arg_list);
+		_arg_size = _tmp2_;
+		_arg_index = -1;
 		while (TRUE) {
+			gpointer _tmp3_ = NULL;
 			gboolean arg;
-			if (!gee_iterator_next (_arg_it)) {
+			_arg_index = _arg_index + 1;
+			if (!(_arg_index < _arg_size)) {
 				break;
 			}
-			arg = GPOINTER_TO_INT (gee_iterator_get (_arg_it));
+			_tmp3_ = gee_abstract_list_get ((GeeAbstractList*) _arg_list, _arg_index);
+			arg = GPOINTER_TO_INT (_tmp3_);
 			while (TRUE) {
 				if (num >= all_args_length1) {
 					result = -1;
-					_g_object_unref0 (_arg_it);
+					_g_object_unref0 (_arg_list);
 					return result;
 				}
 				if (all_args[num].optional == arg) {
@@ -1513,7 +1984,7 @@ static gint completion_provider_get_argument_num (CompletionProvider* self, Comp
 				} else {
 					if (!all_args[num].optional) {
 						result = -1;
-						_g_object_unref0 (_arg_it);
+						_g_object_unref0 (_arg_list);
 						return result;
 					}
 				}
@@ -1521,18 +1992,20 @@ static gint completion_provider_get_argument_num (CompletionProvider* self, Comp
 			}
 			num++;
 		}
-		_g_object_unref0 (_arg_it);
+		_g_object_unref0 (_arg_list);
 	}
 	result = num;
 	return result;
 }
 
 
-static char* completion_provider_get_command_text (CompletionProvider* self, CompletionProviderCompletionCommand* cmd) {
-	char* result = NULL;
-	char* text_to_insert;
+static gchar* completion_provider_get_command_text (CompletionProvider* self, CompletionProviderCompletionCommand* cmd) {
+	gchar* result = NULL;
+	gchar* _tmp0_;
+	gchar* text_to_insert;
 	g_return_val_if_fail (self != NULL, NULL);
-	text_to_insert = g_strdup ((*cmd).name);
+	_tmp0_ = g_strdup ((*cmd).name);
+	text_to_insert = _tmp0_;
 	{
 		CompletionProviderCompletionArgument* arg_collection;
 		int arg_collection_length1;
@@ -1540,13 +2013,18 @@ static char* completion_provider_get_command_text (CompletionProvider* self, Com
 		arg_collection = (*cmd).args;
 		arg_collection_length1 = (*cmd).args_length1;
 		for (arg_it = 0; arg_it < (*cmd).args_length1; arg_it = arg_it + 1) {
-			CompletionProviderCompletionArgument _tmp1_ = {0};
+			CompletionProviderCompletionArgument _tmp1_;
+			CompletionProviderCompletionArgument _tmp2_ = {0};
 			CompletionProviderCompletionArgument arg;
-			arg = (completion_provider_completion_argument_copy (&arg_collection[arg_it], &_tmp1_), _tmp1_);
+			completion_provider_completion_argument_copy (&arg_collection[arg_it], &_tmp2_);
+			_tmp1_ = _tmp2_;
+			arg = _tmp1_;
 			{
 				if (!arg.optional) {
-					char* _tmp0_;
-					text_to_insert = (_tmp0_ = g_strconcat (text_to_insert, "{}", NULL), _g_free0 (text_to_insert), _tmp0_);
+					gchar* _tmp3_;
+					_tmp3_ = g_strconcat (text_to_insert, "{}", NULL);
+					_g_free0 (text_to_insert);
+					text_to_insert = _tmp3_;
 				}
 				completion_provider_completion_argument_destroy (&arg);
 			}
@@ -1557,12 +2035,14 @@ static char* completion_provider_get_command_text (CompletionProvider* self, Com
 }
 
 
-static char* completion_provider_get_command_info (CompletionProvider* self, CompletionProviderCompletionCommand* cmd, gint num) {
-	char* result = NULL;
-	char* info;
+static gchar* completion_provider_get_command_info (CompletionProvider* self, CompletionProviderCompletionCommand* cmd, gint num) {
+	gchar* result = NULL;
+	gchar* _tmp0_;
+	gchar* info;
 	gint i;
 	g_return_val_if_fail (self != NULL, NULL);
-	info = g_strdup ((*cmd).name);
+	_tmp0_ = g_strdup ((*cmd).name);
+	info = _tmp0_;
 	i = 1;
 	{
 		CompletionProviderCompletionArgument* arg_collection;
@@ -1571,32 +2051,55 @@ static char* completion_provider_get_command_info (CompletionProvider* self, Com
 		arg_collection = (*cmd).args;
 		arg_collection_length1 = (*cmd).args_length1;
 		for (arg_it = 0; arg_it < (*cmd).args_length1; arg_it = arg_it + 1) {
-			CompletionProviderCompletionArgument _tmp8_ = {0};
+			CompletionProviderCompletionArgument _tmp1_;
+			CompletionProviderCompletionArgument _tmp2_ = {0};
 			CompletionProviderCompletionArgument arg;
-			arg = (completion_provider_completion_argument_copy (&arg_collection[arg_it], &_tmp8_), _tmp8_);
+			completion_provider_completion_argument_copy (&arg_collection[arg_it], &_tmp2_);
+			_tmp1_ = _tmp2_;
+			arg = _tmp1_;
 			{
 				if (num == i) {
-					char* _tmp0_;
-					info = (_tmp0_ = g_strconcat (info, "<b>", NULL), _g_free0 (info), _tmp0_);
+					gchar* _tmp3_;
+					_tmp3_ = g_strconcat (info, "<b>", NULL);
+					_g_free0 (info);
+					info = _tmp3_;
 				}
 				if (arg.optional) {
-					char* _tmp1_;
-					char* _tmp2_;
-					char* _tmp3_;
-					info = (_tmp3_ = g_strconcat (info, _tmp2_ = g_strconcat (_tmp1_ = g_strconcat ("[", arg.label, NULL), "]", NULL), NULL), _g_free0 (info), _tmp3_);
-					_g_free0 (_tmp2_);
-					_g_free0 (_tmp1_);
-				} else {
-					char* _tmp4_;
-					char* _tmp5_;
-					char* _tmp6_;
-					info = (_tmp6_ = g_strconcat (info, _tmp5_ = g_strconcat (_tmp4_ = g_strconcat ("{", arg.label, NULL), "}", NULL), NULL), _g_free0 (info), _tmp6_);
+					gchar* _tmp4_;
+					gchar* _tmp5_;
+					gchar* _tmp6_;
+					gchar* _tmp7_;
+					gchar* _tmp8_;
+					_tmp4_ = g_strconcat ("[", arg.label, NULL);
+					_tmp5_ = _tmp4_;
+					_tmp6_ = g_strconcat (_tmp5_, "]", NULL);
+					_tmp7_ = _tmp6_;
+					_tmp8_ = g_strconcat (info, _tmp7_, NULL);
+					_g_free0 (info);
+					info = _tmp8_;
+					_g_free0 (_tmp7_);
 					_g_free0 (_tmp5_);
-					_g_free0 (_tmp4_);
+				} else {
+					gchar* _tmp9_;
+					gchar* _tmp10_;
+					gchar* _tmp11_;
+					gchar* _tmp12_;
+					gchar* _tmp13_;
+					_tmp9_ = g_strconcat ("{", arg.label, NULL);
+					_tmp10_ = _tmp9_;
+					_tmp11_ = g_strconcat (_tmp10_, "}", NULL);
+					_tmp12_ = _tmp11_;
+					_tmp13_ = g_strconcat (info, _tmp12_, NULL);
+					_g_free0 (info);
+					info = _tmp13_;
+					_g_free0 (_tmp12_);
+					_g_free0 (_tmp10_);
 				}
 				if (num == i) {
-					char* _tmp7_;
-					info = (_tmp7_ = g_strconcat (info, "</b>", NULL), _g_free0 (info), _tmp7_);
+					gchar* _tmp14_;
+					_tmp14_ = g_strconcat (info, "</b>", NULL);
+					_g_free0 (info);
+					info = _tmp14_;
 				}
 				i++;
 				completion_provider_completion_argument_destroy (&arg);
@@ -1604,75 +2107,110 @@ static char* completion_provider_get_command_info (CompletionProvider* self, Com
 		}
 	}
 	if ((*cmd).package != NULL) {
-		char* _tmp9_;
-		char* _tmp10_;
-		info = (_tmp10_ = g_strconcat (info, _tmp9_ = g_strconcat ("\nPackage: ", (*cmd).package, NULL), NULL), _g_free0 (info), _tmp10_);
-		_g_free0 (_tmp9_);
+		gchar* _tmp15_;
+		gchar* _tmp16_;
+		gchar* _tmp17_;
+		_tmp15_ = g_strconcat ("\nPackage: ", (*cmd).package, NULL);
+		_tmp16_ = _tmp15_;
+		_tmp17_ = g_strconcat (info, _tmp16_, NULL);
+		_g_free0 (info);
+		info = _tmp17_;
+		_g_free0 (_tmp16_);
 	}
 	result = info;
 	return result;
 }
 
 
-static char* completion_provider_get_latex_command_at_iter (CompletionProvider* self, GtkTextIter* iter) {
-	char* result = NULL;
-	char* text;
+static gchar* completion_provider_get_latex_command_at_iter (CompletionProvider* self, GtkTextIter* iter) {
+	gchar* result = NULL;
+	gchar* _tmp0_ = NULL;
+	gchar* text;
+	gint _tmp1_;
+	gchar* _tmp2_ = NULL;
 	g_return_val_if_fail (self != NULL, NULL);
-	text = completion_provider_get_text_line_at_iter (self, iter);
-	result = completion_provider_get_latex_command_at_index (self, text, string_get_length (text) - 1);
+	_tmp0_ = completion_provider_get_text_line_at_iter (self, iter);
+	text = _tmp0_;
+	_tmp1_ = strlen (text);
+	_tmp2_ = completion_provider_get_latex_command_at_index (self, text, (glong) (_tmp1_ - 1));
+	result = _tmp2_;
 	_g_free0 (text);
 	return result;
 }
 
 
-static char* completion_provider_get_text_line_at_iter (CompletionProvider* self, GtkTextIter* iter) {
-	char* result = NULL;
+static gchar* completion_provider_get_text_line_at_iter (CompletionProvider* self, GtkTextIter* iter) {
+	gchar* result = NULL;
+	gint _tmp0_;
 	gint line;
+	GtkTextBuffer* _tmp1_ = NULL;
+	GtkTextBuffer* _tmp2_;
 	GtkTextBuffer* doc;
 	GtkTextIter iter_start = {0};
+	GtkTextIter _tmp3_ = {0};
+	gchar* _tmp4_ = NULL;
 	g_return_val_if_fail (self != NULL, NULL);
-	line = gtk_text_iter_get_line (iter);
-	doc = _g_object_ref0 (gtk_text_iter_get_buffer (iter));
-	gtk_text_buffer_get_iter_at_line (doc, &iter_start, line);
-	result = gtk_text_buffer_get_text (doc, &iter_start, iter, FALSE);
+	_tmp0_ = gtk_text_iter_get_line (iter);
+	line = _tmp0_;
+	_tmp1_ = gtk_text_iter_get_buffer (iter);
+	_tmp2_ = _g_object_ref0 (_tmp1_);
+	doc = _tmp2_;
+	gtk_text_buffer_get_iter_at_line (doc, &_tmp3_, line);
+	iter_start = _tmp3_;
+	_tmp4_ = gtk_text_buffer_get_text (doc, &iter_start, iter, FALSE);
+	result = _tmp4_;
 	_g_object_unref0 (doc);
 	return result;
 }
 
 
-static char* completion_provider_get_latex_command_at_index (CompletionProvider* self, const char* text, glong index) {
-	char* result = NULL;
+static gchar* completion_provider_get_latex_command_at_index (CompletionProvider* self, const gchar* text, glong index) {
+	gchar* result = NULL;
+	gint _tmp0_;
 	g_return_val_if_fail (self != NULL, NULL);
 	g_return_val_if_fail (text != NULL, NULL);
-	g_return_val_if_fail (string_get_length (text) > index, NULL);
+	_tmp0_ = strlen (text);
+	g_return_val_if_fail (_tmp0_ > index, NULL);
 	{
 		glong i;
 		i = index;
 		{
-			gboolean _tmp0_;
-			_tmp0_ = TRUE;
+			gboolean _tmp1_;
+			_tmp1_ = TRUE;
 			while (TRUE) {
-				gboolean _tmp1_ = FALSE;
-				if (!_tmp0_) {
+				gchar _tmp2_;
+				gboolean _tmp5_ = FALSE;
+				gchar _tmp6_;
+				gboolean _tmp7_;
+				if (!_tmp1_) {
 					i--;
 				}
-				_tmp0_ = FALSE;
+				_tmp1_ = FALSE;
 				if (!(i >= 0)) {
 					break;
 				}
-				if (g_utf8_get_char (g_utf8_offset_to_pointer (text, i)) == '\\') {
-					if (completion_provider_char_is_escaped (self, text, i)) {
+				_tmp2_ = string_get (text, i);
+				if (_tmp2_ == '\\') {
+					gboolean _tmp3_;
+					gchar* _tmp4_ = NULL;
+					_tmp3_ = completion_provider_char_is_escaped (self, text, i);
+					if (_tmp3_) {
 						break;
 					}
-					result = string_slice (text, i, index + 1);
+					_tmp4_ = string_slice (text, i, index + 1);
+					result = _tmp4_;
 					return result;
 				}
-				if (!g_unichar_isalpha (g_utf8_get_char (g_utf8_offset_to_pointer (text, i)))) {
-					_tmp1_ = g_utf8_get_char (g_utf8_offset_to_pointer (text, i)) != '*';
+				_tmp6_ = string_get (text, i);
+				_tmp7_ = g_ascii_isalpha (_tmp6_);
+				if (!_tmp7_) {
+					gchar _tmp8_;
+					_tmp8_ = string_get (text, i);
+					_tmp5_ = _tmp8_ != '*';
 				} else {
-					_tmp1_ = FALSE;
+					_tmp5_ = FALSE;
 				}
-				if (_tmp1_) {
+				if (_tmp5_) {
 					break;
 				}
 			}
@@ -1683,150 +2221,251 @@ static char* completion_provider_get_latex_command_at_index (CompletionProvider*
 }
 
 
-static gboolean completion_provider_in_latex_command_argument (CompletionProvider* self, GtkTextIter* iter, char** cmd_name, GeeArrayList** arguments, char** argument_contents, gboolean* valid_arg_contents) {
+static gboolean completion_provider_in_latex_command_argument (CompletionProvider* self, GtkTextIter* iter, gchar** cmd_name, GeeArrayList** arguments, gchar** argument_contents, gboolean* valid_arg_contents) {
+	gchar* _cmd_name = NULL;
+	GeeArrayList* _arguments = NULL;
+	gchar* _argument_contents = NULL;
+	gboolean _valid_arg_contents = FALSE;
 	gboolean result = FALSE;
-	char* text;
+	gchar* _tmp0_ = NULL;
+	gchar* text;
 	gboolean fetch_argument_contents;
 	glong index_start_argument_contents;
 	gboolean in_other_argument;
 	gchar other_argument_opening_bracket;
 	g_return_val_if_fail (self != NULL, FALSE);
-	if (cmd_name != NULL) {
-		*cmd_name = NULL;
-	}
-	if (arguments != NULL) {
-		*arguments = NULL;
-	}
-	if (argument_contents != NULL) {
-		*argument_contents = NULL;
-	}
-	text = completion_provider_get_text_line_at_iter (self, iter);
+	_tmp0_ = completion_provider_get_text_line_at_iter (self, iter);
+	text = _tmp0_;
 	fetch_argument_contents = TRUE;
 	index_start_argument_contents = (glong) (-1);
 	in_other_argument = FALSE;
 	other_argument_opening_bracket = '{';
-	if ((arguments) != NULL) {
-		GeeArrayList* _tmp0_;
-		*arguments = (_tmp0_ = gee_array_list_new (G_TYPE_BOOLEAN, NULL, NULL, NULL), _g_object_unref0 (*arguments), _tmp0_);
+	if ((&_arguments) != NULL) {
+		GeeArrayList* _tmp1_ = NULL;
+		_tmp1_ = gee_array_list_new (G_TYPE_BOOLEAN, NULL, NULL, NULL);
+		_g_object_unref0 (_arguments);
+		_arguments = _tmp1_;
 	}
-	if ((valid_arg_contents) != NULL) {
-		*valid_arg_contents = TRUE;
+	if ((&_valid_arg_contents) != NULL) {
+		_valid_arg_contents = TRUE;
 	}
 	{
+		gint _tmp2_;
 		glong i;
-		i = string_get_length (text) - 1;
+		_tmp2_ = strlen (text);
+		i = (glong) (_tmp2_ - 1);
 		{
-			gboolean _tmp1_;
-			_tmp1_ = TRUE;
+			gboolean _tmp3_;
+			_tmp3_ = TRUE;
 			while (TRUE) {
-				if (!_tmp1_) {
+				if (!_tmp3_) {
 					i--;
 				}
-				_tmp1_ = FALSE;
+				_tmp3_ = FALSE;
 				if (!(i >= 0)) {
 					break;
 				}
 				if (fetch_argument_contents) {
-					gboolean _tmp2_ = FALSE;
-					gboolean _tmp3_ = FALSE;
-					gboolean _tmp6_ = FALSE;
-					gboolean _tmp7_ = FALSE;
-					if (g_utf8_get_char (g_utf8_offset_to_pointer (text, i)) == '{') {
-						_tmp3_ = TRUE;
+					gboolean _tmp4_ = FALSE;
+					gboolean _tmp5_ = FALSE;
+					gchar _tmp6_;
+					gboolean _tmp13_ = FALSE;
+					gboolean _tmp14_ = FALSE;
+					_tmp6_ = string_get (text, i);
+					if (_tmp6_ == '{') {
+						_tmp5_ = TRUE;
 					} else {
-						_tmp3_ = g_utf8_get_char (g_utf8_offset_to_pointer (text, i)) == '[';
+						gchar _tmp7_;
+						_tmp7_ = string_get (text, i);
+						_tmp5_ = _tmp7_ == '[';
 					}
-					if (_tmp3_) {
-						_tmp2_ = !completion_provider_char_is_escaped (self, text, i);
+					if (_tmp5_) {
+						gboolean _tmp8_;
+						_tmp8_ = completion_provider_char_is_escaped (self, text, i);
+						_tmp4_ = !_tmp8_;
 					} else {
-						_tmp2_ = FALSE;
+						_tmp4_ = FALSE;
 					}
-					if (_tmp2_) {
-						gboolean _tmp4_ = FALSE;
-						if ((arguments) != NULL) {
-							gee_abstract_list_insert ((GeeAbstractList*) (*arguments), 0, GINT_TO_POINTER (g_utf8_get_char (g_utf8_offset_to_pointer (text, i)) == '['));
+					if (_tmp4_) {
+						gboolean _tmp10_ = FALSE;
+						if ((&_arguments) != NULL) {
+							gchar _tmp9_;
+							_tmp9_ = string_get (text, i);
+							gee_abstract_list_insert ((GeeAbstractList*) _arguments, 0, GINT_TO_POINTER (_tmp9_ == '['));
 						}
-						if ((argument_contents) != NULL) {
-							_tmp4_ = index_start_argument_contents != (-1);
+						if ((&_argument_contents) != NULL) {
+							_tmp10_ = index_start_argument_contents != (-1);
 						} else {
-							_tmp4_ = FALSE;
+							_tmp10_ = FALSE;
 						}
-						if (_tmp4_) {
-							char* _tmp5_;
-							*argument_contents = (_tmp5_ = string_slice (text, index_start_argument_contents, string_get_length (text)), _g_free0 (*argument_contents), _tmp5_);
+						if (_tmp10_) {
+							gint _tmp11_;
+							gchar* _tmp12_ = NULL;
+							_tmp11_ = strlen (text);
+							_tmp12_ = string_slice (text, index_start_argument_contents, (glong) _tmp11_);
+							_g_free0 (_argument_contents);
+							_argument_contents = _tmp12_;
 						}
 						fetch_argument_contents = FALSE;
 						continue;
 					}
-					if ((valid_arg_contents) != NULL) {
-						_tmp7_ = !g_unichar_isalpha (g_utf8_get_char (g_utf8_offset_to_pointer (text, i)));
+					if ((&_valid_arg_contents) != NULL) {
+						gchar _tmp15_;
+						gboolean _tmp16_;
+						_tmp15_ = string_get (text, i);
+						_tmp16_ = g_ascii_isalpha (_tmp15_);
+						_tmp14_ = !_tmp16_;
 					} else {
-						_tmp7_ = FALSE;
+						_tmp14_ = FALSE;
 					}
-					if (_tmp7_) {
-						_tmp6_ = g_utf8_get_char (g_utf8_offset_to_pointer (text, i)) != '*';
+					if (_tmp14_) {
+						gchar _tmp17_;
+						_tmp17_ = string_get (text, i);
+						_tmp13_ = _tmp17_ != '*';
 					} else {
-						_tmp6_ = FALSE;
+						_tmp13_ = FALSE;
 					}
-					if (_tmp6_) {
-						*valid_arg_contents = FALSE;
+					if (_tmp13_) {
+						_valid_arg_contents = FALSE;
 					}
 					index_start_argument_contents = i;
 				} else {
 					if (in_other_argument) {
-						if (g_utf8_get_char (g_utf8_offset_to_pointer (text, i)) == other_argument_opening_bracket) {
-							in_other_argument = completion_provider_char_is_escaped (self, text, i);
+						gchar _tmp18_;
+						_tmp18_ = string_get (text, i);
+						if (_tmp18_ == other_argument_opening_bracket) {
+							gboolean _tmp19_;
+							_tmp19_ = completion_provider_char_is_escaped (self, text, i);
+							in_other_argument = _tmp19_;
 						}
 						continue;
 					} else {
-						gboolean _tmp8_ = FALSE;
-						gboolean _tmp10_ = FALSE;
-						if (g_unichar_isspace (g_utf8_get_char (g_utf8_offset_to_pointer (text, i)))) {
+						gchar _tmp20_;
+						gboolean _tmp21_;
+						gboolean _tmp22_ = FALSE;
+						gchar _tmp23_;
+						gboolean _tmp24_;
+						gboolean _tmp28_ = FALSE;
+						gchar _tmp29_;
+						_tmp20_ = string_get (text, i);
+						_tmp21_ = g_ascii_isspace (_tmp20_);
+						if (_tmp21_) {
 							continue;
 						}
-						if (g_unichar_isalpha (g_utf8_get_char (g_utf8_offset_to_pointer (text, i)))) {
-							_tmp8_ = TRUE;
+						_tmp23_ = string_get (text, i);
+						_tmp24_ = g_ascii_isalpha (_tmp23_);
+						if (_tmp24_) {
+							_tmp22_ = TRUE;
 						} else {
-							_tmp8_ = g_utf8_get_char (g_utf8_offset_to_pointer (text, i)) == '*';
+							gchar _tmp25_;
+							_tmp25_ = string_get (text, i);
+							_tmp22_ = _tmp25_ == '*';
 						}
-						if (_tmp8_) {
-							char* tmp;
-							tmp = completion_provider_get_latex_command_at_index (self, text, i);
-							if ((cmd_name) != NULL) {
-								char* _tmp9_;
-								*cmd_name = (_tmp9_ = g_strdup (tmp), _g_free0 (*cmd_name), _tmp9_);
+						if (_tmp22_) {
+							gchar* _tmp26_ = NULL;
+							gchar* tmp;
+							_tmp26_ = completion_provider_get_latex_command_at_index (self, text, i);
+							tmp = _tmp26_;
+							if ((&_cmd_name) != NULL) {
+								gchar* _tmp27_;
+								_tmp27_ = g_strdup (tmp);
+								_g_free0 (_cmd_name);
+								_cmd_name = _tmp27_;
 							}
 							result = tmp != NULL;
 							_g_free0 (tmp);
 							_g_free0 (text);
+							if (cmd_name) {
+								*cmd_name = _cmd_name;
+							} else {
+								_g_free0 (_cmd_name);
+							}
+							if (arguments) {
+								*arguments = _arguments;
+							} else {
+								_g_object_unref0 (_arguments);
+							}
+							if (argument_contents) {
+								*argument_contents = _argument_contents;
+							} else {
+								_g_free0 (_argument_contents);
+							}
+							if (valid_arg_contents) {
+								*valid_arg_contents = _valid_arg_contents;
+							}
 							return result;
 						}
-						if (g_utf8_get_char (g_utf8_offset_to_pointer (text, i)) == '}') {
-							_tmp10_ = TRUE;
+						_tmp29_ = string_get (text, i);
+						if (_tmp29_ == '}') {
+							_tmp28_ = TRUE;
 						} else {
-							_tmp10_ = g_utf8_get_char (g_utf8_offset_to_pointer (text, i)) == ']';
+							gchar _tmp30_;
+							_tmp30_ = string_get (text, i);
+							_tmp28_ = _tmp30_ == ']';
 						}
-						if (_tmp10_) {
-							gchar _tmp11_ = '\0';
-							if (completion_provider_char_is_escaped (self, text, i)) {
+						if (_tmp28_) {
+							gboolean _tmp31_;
+							gchar _tmp32_ = '\0';
+							gchar _tmp33_;
+							_tmp31_ = completion_provider_char_is_escaped (self, text, i);
+							if (_tmp31_) {
 								result = FALSE;
 								_g_free0 (text);
+								if (cmd_name) {
+									*cmd_name = _cmd_name;
+								} else {
+									_g_free0 (_cmd_name);
+								}
+								if (arguments) {
+									*arguments = _arguments;
+								} else {
+									_g_object_unref0 (_arguments);
+								}
+								if (argument_contents) {
+									*argument_contents = _argument_contents;
+								} else {
+									_g_free0 (_argument_contents);
+								}
+								if (valid_arg_contents) {
+									*valid_arg_contents = _valid_arg_contents;
+								}
 								return result;
 							}
 							in_other_argument = TRUE;
-							if (g_utf8_get_char (g_utf8_offset_to_pointer (text, i)) == '}') {
-								_tmp11_ = '{';
+							_tmp33_ = string_get (text, i);
+							if (_tmp33_ == '}') {
+								_tmp32_ = '{';
 							} else {
-								_tmp11_ = '[';
+								_tmp32_ = '[';
 							}
-							other_argument_opening_bracket = _tmp11_;
-							if ((arguments) != NULL) {
-								gee_abstract_list_insert ((GeeAbstractList*) (*arguments), 0, GINT_TO_POINTER (g_utf8_get_char (g_utf8_offset_to_pointer (text, i)) == ']'));
+							other_argument_opening_bracket = _tmp32_;
+							if ((&_arguments) != NULL) {
+								gchar _tmp34_;
+								_tmp34_ = string_get (text, i);
+								gee_abstract_list_insert ((GeeAbstractList*) _arguments, 0, GINT_TO_POINTER (_tmp34_ == ']'));
 							}
 							continue;
 						}
 						result = FALSE;
 						_g_free0 (text);
+						if (cmd_name) {
+							*cmd_name = _cmd_name;
+						} else {
+							_g_free0 (_cmd_name);
+						}
+						if (arguments) {
+							*arguments = _arguments;
+						} else {
+							_g_object_unref0 (_arguments);
+						}
+						if (argument_contents) {
+							*argument_contents = _argument_contents;
+						} else {
+							_g_free0 (_argument_contents);
+						}
+						if (valid_arg_contents) {
+							*valid_arg_contents = _valid_arg_contents;
+						}
 						return result;
 					}
 				}
@@ -1835,11 +2474,29 @@ static gboolean completion_provider_in_latex_command_argument (CompletionProvide
 	}
 	result = FALSE;
 	_g_free0 (text);
+	if (cmd_name) {
+		*cmd_name = _cmd_name;
+	} else {
+		_g_free0 (_cmd_name);
+	}
+	if (arguments) {
+		*arguments = _arguments;
+	} else {
+		_g_object_unref0 (_arguments);
+	}
+	if (argument_contents) {
+		*argument_contents = _argument_contents;
+	} else {
+		_g_free0 (_argument_contents);
+	}
+	if (valid_arg_contents) {
+		*valid_arg_contents = _valid_arg_contents;
+	}
 	return result;
 }
 
 
-static gboolean completion_provider_char_is_escaped (CompletionProvider* self, const char* text, glong index) {
+static gboolean completion_provider_char_is_escaped (CompletionProvider* self, const gchar* text, glong index) {
 	gboolean result = FALSE;
 	gboolean escaped;
 	g_return_val_if_fail (self != NULL, FALSE);
@@ -1852,6 +2509,7 @@ static gboolean completion_provider_char_is_escaped (CompletionProvider* self, c
 			gboolean _tmp0_;
 			_tmp0_ = TRUE;
 			while (TRUE) {
+				gchar _tmp1_;
 				if (!_tmp0_) {
 					i--;
 				}
@@ -1859,7 +2517,8 @@ static gboolean completion_provider_char_is_escaped (CompletionProvider* self, c
 				if (!(i >= 0)) {
 					break;
 				}
-				if (g_utf8_get_char (g_utf8_offset_to_pointer (text, i)) == '\\') {
+				_tmp1_ = string_get (text, i);
+				if (_tmp1_ == '\\') {
 					escaped = !escaped;
 				} else {
 					break;
@@ -1874,14 +2533,23 @@ static gboolean completion_provider_char_is_escaped (CompletionProvider* self, c
 
 static gint completion_provider_compare_proposals (GtkSourceCompletionItem* a, GtkSourceCompletionItem* b) {
 	gint result = 0;
-	char* _tmp0_ = NULL;
-	char* _tmp1_;
-	char* _tmp2_ = NULL;
-	char* _tmp3_;
+	gchar* _tmp0_ = NULL;
+	gchar* _tmp1_;
+	gchar* _tmp2_ = NULL;
+	gchar* _tmp3_;
 	gint _tmp4_;
+	gint _tmp5_;
 	g_return_val_if_fail (a != NULL, 0);
 	g_return_val_if_fail (b != NULL, 0);
-	result = (_tmp4_ = g_utf8_collate (_tmp1_ = (g_object_get (a, "text", &_tmp0_, NULL), _tmp0_), _tmp3_ = (g_object_get (b, "text", &_tmp2_, NULL), _tmp2_)), _g_free0 (_tmp3_), _g_free0 (_tmp1_), _tmp4_);
+	g_object_get (a, "text", &_tmp0_, NULL);
+	_tmp1_ = _tmp0_;
+	g_object_get (b, "text", &_tmp2_, NULL);
+	_tmp3_ = _tmp2_;
+	_tmp4_ = g_utf8_collate (_tmp1_, _tmp3_);
+	_tmp5_ = _tmp4_;
+	_g_free0 (_tmp3_);
+	_g_free0 (_tmp1_);
+	result = _tmp5_;
 	return result;
 }
 
@@ -1892,7 +2560,7 @@ static void completion_provider_clear_context (CompletionProvider* self, GtkSour
 	g_return_if_fail (context != NULL);
 	empty_proposals = NULL;
 	gtk_source_completion_context_add_proposals (context, GTK_SOURCE_COMPLETION_PROVIDER (self), empty_proposals, TRUE);
-	__g_list_free_g_object_unref0 (empty_proposals);
+	__g_list_free__g_object_unref0_0 (empty_proposals);
 }
 
 
@@ -1910,10 +2578,11 @@ static void _vala_CompletionProviderCompletionArgument_array_free (CompletionPro
 static CompletionProviderCompletionArgument* _vala_array_dup6 (CompletionProviderCompletionArgument* self, int length) {
 	CompletionProviderCompletionArgument* result;
 	int i;
-	CompletionProviderCompletionArgument _tmp0_ = {0};
 	result = g_new0 (CompletionProviderCompletionArgument, length);
 	for (i = 0; i < length; i++) {
-		result[i] = (completion_provider_completion_argument_copy (&self[i], &_tmp0_), _tmp0_);
+		CompletionProviderCompletionArgument _tmp0_ = {0};
+		completion_provider_completion_argument_copy (&self[i], &_tmp0_);
+		result[i] = _tmp0_;
 	}
 	return result;
 }
@@ -1929,9 +2598,9 @@ static void completion_provider_completion_command_copy (const CompletionProvide
 
 
 static void completion_provider_completion_command_destroy (CompletionProviderCompletionCommand* self) {
-	_g_free0 (self->name);
-	_g_free0 (self->package);
-	self->args = (_vala_CompletionProviderCompletionArgument_array_free (self->args, (*self).args_length1), NULL);
+	_g_free0 ((*self).name);
+	_g_free0 ((*self).package);
+	(*self).args = (_vala_CompletionProviderCompletionArgument_array_free ((*self).args, (*self).args_length1), NULL);
 }
 
 
@@ -1974,10 +2643,11 @@ static void _vala_CompletionProviderCompletionChoice_array_free (CompletionProvi
 static CompletionProviderCompletionChoice* _vala_array_dup7 (CompletionProviderCompletionChoice* self, int length) {
 	CompletionProviderCompletionChoice* result;
 	int i;
-	CompletionProviderCompletionChoice _tmp0_ = {0};
 	result = g_new0 (CompletionProviderCompletionChoice, length);
 	for (i = 0; i < length; i++) {
-		result[i] = (completion_provider_completion_choice_copy (&self[i], &_tmp0_), _tmp0_);
+		CompletionProviderCompletionChoice _tmp0_ = {0};
+		completion_provider_completion_choice_copy (&self[i], &_tmp0_);
+		result[i] = _tmp0_;
 	}
 	return result;
 }
@@ -1993,8 +2663,8 @@ static void completion_provider_completion_argument_copy (const CompletionProvid
 
 
 static void completion_provider_completion_argument_destroy (CompletionProviderCompletionArgument* self) {
-	_g_free0 (self->label);
-	self->choices = (_vala_CompletionProviderCompletionChoice_array_free (self->choices, (*self).choices_length1), NULL);
+	_g_free0 ((*self).label);
+	(*self).choices = (_vala_CompletionProviderCompletionChoice_array_free ((*self).choices, (*self).choices_length1), NULL);
 }
 
 
@@ -2026,12 +2696,16 @@ static GType completion_provider_completion_argument_get_type (void) {
 static void completion_provider_completion_choice_copy (const CompletionProviderCompletionChoice* self, CompletionProviderCompletionChoice* dest) {
 	dest->name = g_strdup (self->name);
 	dest->package = g_strdup (self->package);
+	dest->insert = g_strdup (self->insert);
+	dest->insert_after = g_strdup (self->insert_after);
 }
 
 
 static void completion_provider_completion_choice_destroy (CompletionProviderCompletionChoice* self) {
-	_g_free0 (self->name);
-	_g_free0 (self->package);
+	_g_free0 ((*self).name);
+	_g_free0 ((*self).package);
+	_g_free0 ((*self).insert);
+	_g_free0 ((*self).insert_after);
 }
 
 
@@ -2069,17 +2743,17 @@ static void completion_provider_class_init (CompletionProviderClass * klass) {
 
 static void completion_provider_gtk_source_completion_provider_interface_init (GtkSourceCompletionProviderIface * iface) {
 	completion_provider_gtk_source_completion_provider_parent_iface = g_type_interface_peek_parent (iface);
-	iface->get_name = completion_provider_real_get_name;
-	iface->get_icon = completion_provider_real_get_icon;
-	iface->get_activation = completion_provider_real_get_activation;
-	iface->get_info_widget = completion_provider_real_get_info_widget;
-	iface->update_info = completion_provider_real_update_info;
-	iface->get_start_iter = completion_provider_real_get_start_iter;
-	iface->get_interactive_delay = completion_provider_real_get_interactive_delay;
-	iface->get_priority = completion_provider_real_get_priority;
-	iface->match = completion_provider_real_match;
-	iface->populate = completion_provider_real_populate;
-	iface->activate_proposal = completion_provider_real_activate_proposal;
+	iface->get_name = (gchar* (*)(GtkSourceCompletionProvider*)) completion_provider_real_get_name;
+	iface->get_icon = (GdkPixbuf* (*)(GtkSourceCompletionProvider*)) completion_provider_real_get_icon;
+	iface->get_activation = (GtkSourceCompletionActivation (*)(GtkSourceCompletionProvider*)) completion_provider_real_get_activation;
+	iface->get_info_widget = (GtkWidget* (*)(GtkSourceCompletionProvider* ,GtkSourceCompletionProposal*)) completion_provider_real_get_info_widget;
+	iface->update_info = (void (*)(GtkSourceCompletionProvider* ,GtkSourceCompletionProposal* ,GtkSourceCompletionInfo*)) completion_provider_real_update_info;
+	iface->get_start_iter = (gboolean (*)(GtkSourceCompletionProvider* ,GtkSourceCompletionContext* ,GtkSourceCompletionProposal* ,GtkTextIter*)) completion_provider_real_get_start_iter;
+	iface->get_interactive_delay = (gint (*)(GtkSourceCompletionProvider*)) completion_provider_real_get_interactive_delay;
+	iface->get_priority = (gint (*)(GtkSourceCompletionProvider*)) completion_provider_real_get_priority;
+	iface->match = (gboolean (*)(GtkSourceCompletionProvider* ,GtkSourceCompletionContext*)) completion_provider_real_match;
+	iface->populate = (void (*)(GtkSourceCompletionProvider* ,GtkSourceCompletionContext*)) completion_provider_real_populate;
+	iface->activate_proposal = (gboolean (*)(GtkSourceCompletionProvider* ,GtkSourceCompletionProposal* ,GtkTextIter*)) completion_provider_real_activate_proposal;
 }
 
 
@@ -2096,11 +2770,13 @@ static void completion_provider_instance_init (CompletionProvider * self) {
 static void completion_provider_finalize (GObject* obj) {
 	CompletionProvider * self;
 	self = COMPLETION_PROVIDER (obj);
-	__g_list_free_g_object_unref0 (self->priv->proposals);
+	__g_list_free__g_object_unref0_0 (self->priv->proposals);
 	_g_object_unref0 (self->priv->commands);
+	_g_object_unref0 (self->priv->environments);
 	_g_object_unref0 (self->priv->settings);
 	completion_provider_completion_command_destroy (&self->priv->current_command);
 	completion_provider_completion_argument_destroy (&self->priv->current_arg);
+	completion_provider_completion_choice_destroy (&self->priv->current_choice);
 	_g_object_unref0 (self->priv->icon_normal_cmd);
 	_g_object_unref0 (self->priv->icon_normal_choice);
 	_g_object_unref0 (self->priv->icon_package_required);
@@ -2136,16 +2812,4 @@ static gint _vala_array_length (gpointer array) {
 }
 
 
-static int _vala_strcmp0 (const char * str1, const char * str2) {
-	if (str1 == NULL) {
-		return -(str1 != str2);
-	}
-	if (str2 == NULL) {
-		return str1 != str2;
-	}
-	return strcmp (str1, str2);
-}
-
-
-
 
diff --git a/src/C/custom_statusbar.c b/src/C/custom_statusbar.c
index a60db15..2ee185a 100644
--- a/src/C/custom_statusbar.c
+++ b/src/C/custom_statusbar.c
@@ -1,4 +1,4 @@
-/* custom_statusbar.c generated by valac 0.10.3, the Vala compiler
+/* custom_statusbar.c generated by valac 0.12.1, the Vala compiler
  * generated from custom_statusbar.vala, do not modify */
 
 /*
@@ -68,12 +68,13 @@ void custom_statusbar_set_cursor_position (CustomStatusbar* self, gint line, gin
 static void custom_statusbar_finalize (GObject* obj);
 
 
-
 CustomStatusbar* custom_statusbar_construct (GType object_type) {
-	CustomStatusbar * self;
-	GtkStatusbar* _tmp0_;
-	self = g_object_newv (object_type, 0, NULL);
-	self->priv->cursor_position = (_tmp0_ = g_object_ref_sink ((GtkStatusbar*) gtk_statusbar_new ()), _g_object_unref0 (self->priv->cursor_position), _tmp0_);
+	CustomStatusbar * self = NULL;
+	GtkStatusbar* _tmp0_ = NULL;
+	self = (CustomStatusbar*) g_object_new (object_type, NULL);
+	_tmp0_ = (GtkStatusbar*) gtk_statusbar_new ();
+	_g_object_unref0 (self->priv->cursor_position);
+	self->priv->cursor_position = g_object_ref_sink (_tmp0_);
 	gtk_statusbar_set_has_resize_grip (self->priv->cursor_position, FALSE);
 	gtk_widget_set_size_request ((GtkWidget*) self->priv->cursor_position, 150, -1);
 	gtk_box_pack_end ((GtkBox*) self, (GtkWidget*) self->priv->cursor_position, FALSE, TRUE, (guint) 0);
@@ -88,7 +89,9 @@ CustomStatusbar* custom_statusbar_new (void) {
 
 void custom_statusbar_set_cursor_position (CustomStatusbar* self, gint line, gint col) {
 	gboolean _tmp0_ = FALSE;
-	char* _tmp1_;
+	const gchar* _tmp1_ = NULL;
+	gchar* _tmp2_ = NULL;
+	gchar* _tmp3_;
 	g_return_if_fail (self != NULL);
 	gtk_statusbar_pop (self->priv->cursor_position, (guint) 0);
 	if (line == (-1)) {
@@ -99,8 +102,11 @@ void custom_statusbar_set_cursor_position (CustomStatusbar* self, gint line, gin
 	if (_tmp0_) {
 		return;
 	}
-	gtk_statusbar_push (self->priv->cursor_position, (guint) 0, _tmp1_ = g_strdup_printf (_ ("Ln %d, Col %d"), line, col));
-	_g_free0 (_tmp1_);
+	_tmp1_ = _ ("Ln %d, Col %d");
+	_tmp2_ = g_strdup_printf (_tmp1_, line, col);
+	_tmp3_ = _tmp2_;
+	gtk_statusbar_push (self->priv->cursor_position, (guint) 0, _tmp3_);
+	_g_free0 (_tmp3_);
 }
 
 
@@ -137,4 +143,3 @@ GType custom_statusbar_get_type (void) {
 
 
 
-
diff --git a/src/C/dialogs.c b/src/C/dialogs.c
index cf4a17c..20942a3 100644
--- a/src/C/dialogs.c
+++ b/src/C/dialogs.c
@@ -1,4 +1,4 @@
-/* dialogs.c generated by valac 0.10.3, the Vala compiler
+/* dialogs.c generated by valac 0.12.1, the Vala compiler
  * generated from dialogs.vala, do not modify */
 
 /*
@@ -53,6 +53,8 @@ typedef struct _MainWindowClass MainWindowClass;
 
 typedef struct _Document Document;
 typedef struct _DocumentClass DocumentClass;
+typedef struct _Block17Data Block17Data;
+#define _g_object_unref0(var) ((var == NULL) ? NULL : (var = (g_object_unref (var), NULL)))
 #define _g_free0(var) (var = (g_free (var), NULL))
 typedef struct _DocumentPrivate DocumentPrivate;
 
@@ -65,10 +67,8 @@ typedef struct _DocumentPrivate DocumentPrivate;
 
 typedef struct _DocumentTab DocumentTab;
 typedef struct _DocumentTabClass DocumentTabClass;
-#define _g_object_unref0(var) ((var == NULL) ? NULL : (var = (g_object_unref (var), NULL)))
 #define _gtk_tree_path_free0(var) ((var == NULL) ? NULL : (var = (gtk_tree_path_free (var), NULL)))
-#define __g_list_free_g_object_unref0(var) ((var == NULL) ? NULL : (var = (_g_list_free_g_object_unref (var), NULL)))
-typedef struct _Block17Data Block17Data;
+#define __g_list_free__g_object_unref0_0(var) ((var == NULL) ? NULL : (var = (_g_list_free__g_object_unref0_ (var), NULL)))
 
 #define DIALOGS_TYPE_CLEAN_FILE_COLUMN (dialogs_clean_file_column_get_type ())
 typedef struct _Block18Data Block18Data;
@@ -80,21 +80,22 @@ typedef enum  {
 	DIALOGS_UNSAVED_DOC_COLUMN_N_COLUMNS
 } DialogsUnsavedDocColumn;
 
+struct _Block17Data {
+	int _ref_count_;
+	GtkListStore* store;
+};
+
 struct _Document {
 	GtkSourceBuffer parent_instance;
 	DocumentPrivate * priv;
 	DocumentTab* tab;
+	guint _unsaved_doc_num;
 };
 
 struct _DocumentClass {
 	GtkSourceBufferClass parent_class;
 };
 
-struct _Block17Data {
-	int _ref_count_;
-	GtkListStore* store;
-};
-
 typedef enum  {
 	DIALOGS_CLEAN_FILE_COLUMN_DELETE,
 	DIALOGS_CLEAN_FILE_COLUMN_NAME,
@@ -112,32 +113,32 @@ GType dialogs_unsaved_doc_column_get_type (void) G_GNUC_CONST;
 GType main_window_get_type (void) G_GNUC_CONST;
 GType document_get_type (void) G_GNUC_CONST;
 void dialogs_close_several_unsaved_documents (MainWindow* window, GList* unsaved_docs);
+static Block17Data* block17_data_ref (Block17Data* _data17_);
+static void block17_data_unref (Block17Data* _data17_);
 GType document_tab_get_type (void) G_GNUC_CONST;
-const char* document_tab_get_label_text (DocumentTab* self);
-static void _lambda63_ (const char* path_str, Block17Data* _data17_);
-static void __lambda63__gtk_cell_renderer_toggle_toggled (GtkCellRendererToggle* _sender, const char* path, gpointer self);
+const gchar* document_tab_get_label_text (DocumentTab* self);
+static void _lambda66_ (const gchar* path_str, Block17Data* _data17_);
+static void __lambda66__gtk_cell_renderer_toggle_toggled (GtkCellRendererToggle* _sender, const gchar* path, gpointer self);
 GtkWidget* utils_add_scrollbar (GtkWidget* child);
 void main_window_remove_all_tabs (MainWindow* self);
 GList* main_window_get_documents (MainWindow* self);
 gboolean document_get_modified (Document* self);
 gboolean main_window_close_tab (MainWindow* self, DocumentTab* tab, gboolean force_close);
-static void _g_list_free_g_object_unref (GList* self);
+static void _g_object_unref0_ (gpointer var);
+static void _g_list_free__g_object_unref0_ (GList* self);
 gboolean main_window_save_document (MainWindow* self, Document* doc, gboolean force_save_as);
-static Block17Data* block17_data_ref (Block17Data* _data17_);
-static void block17_data_unref (Block17Data* _data17_);
 GType dialogs_clean_file_column_get_type (void) G_GNUC_CONST;
-gboolean dialogs_confirm_clean_build_files (MainWindow* window, GFile* directory, char** basenames, int basenames_length1);
-static void _lambda13_ (const char* path_str, Block18Data* _data18_);
-static void __lambda13__gtk_cell_renderer_toggle_toggled (GtkCellRendererToggle* _sender, const char* path, gpointer self);
-static void _vala_array_add17 (char*** array, int* length, int* size, char* value);
-void utils_delete_file (GFile* file);
+gboolean dialogs_confirm_clean_build_files (MainWindow* window, GFile* directory, gchar** basenames, int basenames_length1);
 static Block18Data* block18_data_ref (Block18Data* _data18_);
 static void block18_data_unref (Block18Data* _data18_);
+static void _lambda13_ (const gchar* path_str, Block18Data* _data18_);
+static void __lambda13__gtk_cell_renderer_toggle_toggled (GtkCellRendererToggle* _sender, const gchar* path, gpointer self);
+static void _vala_array_add17 (gchar*** array, int* length, int* size, gchar* value);
+void utils_delete_file (GFile* file);
 static void _vala_array_destroy (gpointer array, gint array_length, GDestroyNotify destroy_func);
 static void _vala_array_free (gpointer array, gint array_length, GDestroyNotify destroy_func);
 
 
-
 GType dialogs_unsaved_doc_column_get_type (void) {
 	static volatile gsize dialogs_unsaved_doc_column_type_id__volatile = 0;
 	if (g_once_init_enter (&dialogs_unsaved_doc_column_type_id__volatile)) {
@@ -150,179 +151,264 @@ GType dialogs_unsaved_doc_column_get_type (void) {
 }
 
 
+static Block17Data* block17_data_ref (Block17Data* _data17_) {
+	g_atomic_int_inc (&_data17_->_ref_count_);
+	return _data17_;
+}
+
+
+static void block17_data_unref (Block17Data* _data17_) {
+	if (g_atomic_int_dec_and_test (&_data17_->_ref_count_)) {
+		_g_object_unref0 (_data17_->store);
+		g_slice_free (Block17Data, _data17_);
+	}
+}
+
+
 static gpointer _g_object_ref0 (gpointer self) {
 	return self ? g_object_ref (self) : NULL;
 }
 
 
-static void _lambda63_ (const char* path_str, Block17Data* _data17_) {
+static void _lambda66_ (const gchar* path_str, Block17Data* _data17_) {
+	GtkTreePath* _tmp0_ = NULL;
 	GtkTreePath* path;
 	GtkTreeIter iter = {0};
 	gboolean active = FALSE;
+	GtkTreeIter _tmp1_ = {0};
 	g_return_if_fail (path_str != NULL);
-	path = gtk_tree_path_new_from_string (path_str);
-	gtk_tree_model_get_iter ((GtkTreeModel*) _data17_->store, &iter, path);
+	_tmp0_ = gtk_tree_path_new_from_string (path_str);
+	path = _tmp0_;
+	gtk_tree_model_get_iter ((GtkTreeModel*) _data17_->store, &_tmp1_, path);
+	iter = _tmp1_;
 	gtk_tree_model_get ((GtkTreeModel*) _data17_->store, &iter, DIALOGS_UNSAVED_DOC_COLUMN_SAVE, &active, -1, -1);
 	gtk_list_store_set (_data17_->store, &iter, DIALOGS_UNSAVED_DOC_COLUMN_SAVE, !active, -1, -1);
 	_gtk_tree_path_free0 (path);
 }
 
 
-static void __lambda63__gtk_cell_renderer_toggle_toggled (GtkCellRendererToggle* _sender, const char* path, gpointer self) {
-	_lambda63_ (path, self);
+static void __lambda66__gtk_cell_renderer_toggle_toggled (GtkCellRendererToggle* _sender, const gchar* path, gpointer self) {
+	_lambda66_ (path, self);
 }
 
 
-static void _g_list_free_g_object_unref (GList* self) {
-	g_list_foreach (self, (GFunc) g_object_unref, NULL);
-	g_list_free (self);
-}
-
-
-static Block17Data* block17_data_ref (Block17Data* _data17_) {
-	g_atomic_int_inc (&_data17_->_ref_count_);
-	return _data17_;
+static void _g_object_unref0_ (gpointer var) {
+	(var == NULL) ? NULL : (var = (g_object_unref (var), NULL));
 }
 
 
-static void block17_data_unref (Block17Data* _data17_) {
-	if (g_atomic_int_dec_and_test (&_data17_->_ref_count_)) {
-		_g_object_unref0 (_data17_->store);
-		g_slice_free (Block17Data, _data17_);
-	}
+static void _g_list_free__g_object_unref0_ (GList* self) {
+	g_list_foreach (self, (GFunc) _g_object_unref0_, NULL);
+	g_list_free (self);
 }
 
 
 void dialogs_close_several_unsaved_documents (MainWindow* window, GList* unsaved_docs) {
 	Block17Data* _data17_;
+	guint _tmp0_;
+	const gchar* _tmp1_ = NULL;
+	GtkDialog* _tmp2_ = NULL;
 	GtkDialog* dialog;
+	GtkHBox* _tmp3_ = NULL;
 	GtkHBox* hbox;
+	GtkWidget* _tmp4_ = NULL;
+	GtkVBox* _tmp5_;
 	GtkVBox* content_area;
+	GtkImage* _tmp6_ = NULL;
 	GtkImage* image;
+	GtkVBox* _tmp7_ = NULL;
 	GtkVBox* vbox;
+	GtkLabel* _tmp8_ = NULL;
 	GtkLabel* primary_label;
-	char* _tmp0_;
-	char* _tmp1_;
-	char* _tmp2_;
+	const gchar* _tmp9_ = NULL;
+	guint _tmp10_;
+	gchar* _tmp11_ = NULL;
+	gchar* _tmp12_;
+	gchar* _tmp13_;
+	gchar* _tmp14_;
+	gchar* _tmp15_;
+	gchar* _tmp16_;
+	GtkVBox* _tmp17_ = NULL;
 	GtkVBox* vbox2;
+	const gchar* _tmp18_ = NULL;
+	GtkLabel* _tmp19_ = NULL;
 	GtkLabel* select_label;
+	GtkTreeView* _tmp20_ = NULL;
 	GtkTreeView* treeview;
+	GtkListStore* _tmp21_ = NULL;
+	GtkCellRendererToggle* _tmp25_ = NULL;
 	GtkCellRendererToggle* renderer1;
+	GtkTreeViewColumn* _tmp26_ = NULL;
 	GtkTreeViewColumn* column;
+	GtkCellRendererText* _tmp27_ = NULL;
 	GtkCellRendererText* renderer2;
-	GtkTreeViewColumn* _tmp3_;
+	GtkTreeViewColumn* _tmp28_ = NULL;
+	GtkWidget* _tmp29_ = NULL;
 	GtkScrolledWindow* sw;
+	const gchar* _tmp30_ = NULL;
+	GtkLabel* _tmp31_ = NULL;
 	GtkLabel* secondary_label;
+	gint _tmp32_;
 	gint resp;
 	g_return_if_fail (window != NULL);
 	_data17_ = g_slice_new0 (Block17Data);
 	_data17_->_ref_count_ = 1;
-	g_return_if_fail (g_list_length (unsaved_docs) >= 2);
-	dialog = g_object_ref_sink ((GtkDialog*) gtk_dialog_new_with_buttons (NULL, (GtkWindow*) window, GTK_DIALOG_DESTROY_WITH_PARENT, _ ("Close without Saving"), GTK_RESPONSE_CLOSE, GTK_STOCK_CANCEL, GTK_RESPONSE_CANCEL, GTK_STOCK_SAVE, GTK_RESPONSE_ACCEPT, NULL, NULL));
+	_tmp0_ = g_list_length (unsaved_docs);
+	g_return_if_fail (_tmp0_ >= 2);
+	_tmp1_ = _ ("Close without Saving");
+	_tmp2_ = (GtkDialog*) gtk_dialog_new_with_buttons (NULL, (GtkWindow*) window, GTK_DIALOG_DESTROY_WITH_PARENT, _tmp1_, GTK_RESPONSE_CLOSE, GTK_STOCK_CANCEL, GTK_RESPONSE_CANCEL, GTK_STOCK_SAVE, GTK_RESPONSE_ACCEPT, NULL, NULL);
+	dialog = g_object_ref_sink (_tmp2_);
 	gtk_dialog_set_has_separator (dialog, FALSE);
-	hbox = g_object_ref_sink ((GtkHBox*) gtk_hbox_new (FALSE, 12));
+	_tmp3_ = (GtkHBox*) gtk_hbox_new (FALSE, 12);
+	hbox = g_object_ref_sink (_tmp3_);
 	gtk_container_set_border_width ((GtkContainer*) hbox, (guint) 5);
-	content_area = _g_object_ref0 (GTK_VBOX (gtk_dialog_get_content_area (dialog)));
+	_tmp4_ = gtk_dialog_get_content_area (dialog);
+	_tmp5_ = _g_object_ref0 (GTK_VBOX (_tmp4_));
+	content_area = _tmp5_;
 	gtk_box_pack_start ((GtkBox*) content_area, (GtkWidget*) hbox, TRUE, TRUE, (guint) 0);
-	image = g_object_ref_sink ((GtkImage*) gtk_image_new_from_stock (GTK_STOCK_DIALOG_WARNING, GTK_ICON_SIZE_DIALOG));
-	gtk_misc_set_alignment ((GtkMisc*) image, (float) 0.5, (float) 0.0);
+	_tmp6_ = (GtkImage*) gtk_image_new_from_stock (GTK_STOCK_DIALOG_WARNING, GTK_ICON_SIZE_DIALOG);
+	image = g_object_ref_sink (_tmp6_);
+	gtk_misc_set_alignment ((GtkMisc*) image, (gfloat) 0.5, (gfloat) 0.0);
 	gtk_box_pack_start ((GtkBox*) hbox, (GtkWidget*) image, FALSE, FALSE, (guint) 0);
-	vbox = g_object_ref_sink ((GtkVBox*) gtk_vbox_new (FALSE, 12));
+	_tmp7_ = (GtkVBox*) gtk_vbox_new (FALSE, 12);
+	vbox = g_object_ref_sink (_tmp7_);
 	gtk_box_pack_start ((GtkBox*) hbox, (GtkWidget*) vbox, TRUE, TRUE, (guint) 0);
-	primary_label = g_object_ref_sink ((GtkLabel*) gtk_label_new (NULL));
+	_tmp8_ = (GtkLabel*) gtk_label_new (NULL);
+	primary_label = g_object_ref_sink (_tmp8_);
 	gtk_label_set_line_wrap (primary_label, TRUE);
 	gtk_label_set_use_markup (primary_label, TRUE);
-	gtk_misc_set_alignment ((GtkMisc*) primary_label, (float) 0.0, (float) 0.5);
+	gtk_misc_set_alignment ((GtkMisc*) primary_label, (gfloat) 0.0, (gfloat) 0.5);
 	gtk_label_set_selectable (primary_label, TRUE);
-	gtk_label_set_markup (primary_label, _tmp2_ = g_strconcat (_tmp1_ = g_strconcat ("<span weight=\"bold\" size=\"larger\">", _tmp0_ = g_strdup_printf (_ ("There are %d documents with unsaved changes. Save changes before closi" \
-"ng?"), g_list_length (unsaved_docs)), NULL), "</span>", NULL));
-	_g_free0 (_tmp2_);
-	_g_free0 (_tmp1_);
-	_g_free0 (_tmp0_);
+	_tmp9_ = _ ("There are %d documents with unsaved changes. Save changes before closi" \
+"ng?");
+	_tmp10_ = g_list_length (unsaved_docs);
+	_tmp11_ = g_strdup_printf (_tmp9_, _tmp10_);
+	_tmp12_ = _tmp11_;
+	_tmp13_ = g_strconcat ("<span weight=\"bold\" size=\"larger\">", _tmp12_, NULL);
+	_tmp14_ = _tmp13_;
+	_tmp15_ = g_strconcat (_tmp14_, "</span>", NULL);
+	_tmp16_ = _tmp15_;
+	gtk_label_set_markup (primary_label, _tmp16_);
+	_g_free0 (_tmp16_);
+	_g_free0 (_tmp14_);
+	_g_free0 (_tmp12_);
 	gtk_box_pack_start ((GtkBox*) vbox, (GtkWidget*) primary_label, FALSE, FALSE, (guint) 0);
-	vbox2 = g_object_ref_sink ((GtkVBox*) gtk_vbox_new (FALSE, 8));
+	_tmp17_ = (GtkVBox*) gtk_vbox_new (FALSE, 8);
+	vbox2 = g_object_ref_sink (_tmp17_);
 	gtk_box_pack_start ((GtkBox*) vbox, (GtkWidget*) vbox2, FALSE, FALSE, (guint) 0);
-	select_label = g_object_ref_sink ((GtkLabel*) gtk_label_new (_ ("Select the documents you want to save:")));
+	_tmp18_ = _ ("Select the documents you want to save:");
+	_tmp19_ = (GtkLabel*) gtk_label_new (_tmp18_);
+	select_label = g_object_ref_sink (_tmp19_);
 	gtk_label_set_line_wrap (select_label, TRUE);
-	gtk_misc_set_alignment ((GtkMisc*) select_label, (float) 0.0, (float) 0.5);
+	gtk_misc_set_alignment ((GtkMisc*) select_label, (gfloat) 0.0, (gfloat) 0.5);
 	gtk_box_pack_start ((GtkBox*) vbox2, (GtkWidget*) select_label, FALSE, FALSE, (guint) 0);
-	treeview = g_object_ref_sink ((GtkTreeView*) gtk_tree_view_new ());
+	_tmp20_ = (GtkTreeView*) gtk_tree_view_new ();
+	treeview = g_object_ref_sink (_tmp20_);
 	gtk_widget_set_size_request ((GtkWidget*) treeview, 260, 120);
 	gtk_tree_view_set_headers_visible (treeview, FALSE);
 	gtk_tree_view_set_enable_search (treeview, FALSE);
-	_data17_->store = gtk_list_store_new ((gint) DIALOGS_UNSAVED_DOC_COLUMN_N_COLUMNS, G_TYPE_BOOLEAN, G_TYPE_STRING, TYPE_DOCUMENT);
+	_tmp21_ = gtk_list_store_new ((gint) DIALOGS_UNSAVED_DOC_COLUMN_N_COLUMNS, G_TYPE_BOOLEAN, G_TYPE_STRING, TYPE_DOCUMENT);
+	_data17_->store = _tmp21_;
 	{
 		GList* doc_collection;
 		GList* doc_it;
 		doc_collection = unsaved_docs;
 		for (doc_it = doc_collection; doc_it != NULL; doc_it = doc_it->next) {
+			Document* _tmp22_;
 			Document* doc;
-			doc = _g_object_ref0 ((Document*) doc_it->data);
+			_tmp22_ = _g_object_ref0 ((Document*) doc_it->data);
+			doc = _tmp22_;
 			{
 				GtkTreeIter iter = {0};
-				gtk_list_store_append (_data17_->store, &iter);
-				gtk_list_store_set (_data17_->store, &iter, DIALOGS_UNSAVED_DOC_COLUMN_SAVE, TRUE, DIALOGS_UNSAVED_DOC_COLUMN_NAME, document_tab_get_label_text (doc->tab), DIALOGS_UNSAVED_DOC_COLUMN_DOC, doc, -1, -1);
+				GtkTreeIter _tmp23_ = {0};
+				const gchar* _tmp24_ = NULL;
+				gtk_list_store_append (_data17_->store, &_tmp23_);
+				iter = _tmp23_;
+				_tmp24_ = document_tab_get_label_text (doc->tab);
+				gtk_list_store_set (_data17_->store, &iter, DIALOGS_UNSAVED_DOC_COLUMN_SAVE, TRUE, DIALOGS_UNSAVED_DOC_COLUMN_NAME, _tmp24_, DIALOGS_UNSAVED_DOC_COLUMN_DOC, doc, -1, -1);
 				_g_object_unref0 (doc);
 			}
 		}
 	}
 	gtk_tree_view_set_model (treeview, (GtkTreeModel*) _data17_->store);
-	renderer1 = g_object_ref_sink ((GtkCellRendererToggle*) gtk_cell_renderer_toggle_new ());
-	g_signal_connect_data (renderer1, "toggled", (GCallback) __lambda63__gtk_cell_renderer_toggle_toggled, block17_data_ref (_data17_), (GClosureNotify) block17_data_unref, 0);
-	column = g_object_ref_sink (gtk_tree_view_column_new_with_attributes ("Save?", (GtkCellRenderer*) renderer1, "active", DIALOGS_UNSAVED_DOC_COLUMN_SAVE, NULL, NULL));
+	_tmp25_ = (GtkCellRendererToggle*) gtk_cell_renderer_toggle_new ();
+	renderer1 = g_object_ref_sink (_tmp25_);
+	g_signal_connect_data (renderer1, "toggled", (GCallback) __lambda66__gtk_cell_renderer_toggle_toggled, block17_data_ref (_data17_), (GClosureNotify) block17_data_unref, 0);
+	_tmp26_ = gtk_tree_view_column_new_with_attributes ("Save?", (GtkCellRenderer*) renderer1, "active", DIALOGS_UNSAVED_DOC_COLUMN_SAVE, NULL, NULL);
+	column = g_object_ref_sink (_tmp26_);
 	gtk_tree_view_append_column (treeview, column);
-	renderer2 = g_object_ref_sink ((GtkCellRendererText*) gtk_cell_renderer_text_new ());
-	column = (_tmp3_ = g_object_ref_sink (gtk_tree_view_column_new_with_attributes ("Name", (GtkCellRenderer*) renderer2, "text", DIALOGS_UNSAVED_DOC_COLUMN_NAME, NULL, NULL)), _g_object_unref0 (column), _tmp3_);
+	_tmp27_ = (GtkCellRendererText*) gtk_cell_renderer_text_new ();
+	renderer2 = g_object_ref_sink (_tmp27_);
+	_tmp28_ = gtk_tree_view_column_new_with_attributes ("Name", (GtkCellRenderer*) renderer2, "text", DIALOGS_UNSAVED_DOC_COLUMN_NAME, NULL, NULL);
+	_g_object_unref0 (column);
+	column = g_object_ref_sink (_tmp28_);
 	gtk_tree_view_append_column (treeview, column);
-	sw = GTK_SCROLLED_WINDOW (utils_add_scrollbar ((GtkWidget*) treeview));
+	_tmp29_ = utils_add_scrollbar ((GtkWidget*) treeview);
+	sw = GTK_SCROLLED_WINDOW (_tmp29_);
 	gtk_scrolled_window_set_shadow_type (sw, GTK_SHADOW_IN);
 	gtk_box_pack_start ((GtkBox*) vbox2, (GtkWidget*) sw, TRUE, TRUE, (guint) 0);
-	secondary_label = g_object_ref_sink ((GtkLabel*) gtk_label_new (_ ("If you don't save, all your changes will be permanently lost.")));
+	_tmp30_ = _ ("If you don't save, all your changes will be permanently lost.");
+	_tmp31_ = (GtkLabel*) gtk_label_new (_tmp30_);
+	secondary_label = g_object_ref_sink (_tmp31_);
 	gtk_label_set_line_wrap (secondary_label, TRUE);
-	gtk_misc_set_alignment ((GtkMisc*) secondary_label, (float) 0.0, (float) 0.5);
+	gtk_misc_set_alignment ((GtkMisc*) secondary_label, (gfloat) 0.0, (gfloat) 0.5);
 	gtk_label_set_selectable (secondary_label, TRUE);
 	gtk_box_pack_start ((GtkBox*) vbox2, (GtkWidget*) secondary_label, FALSE, FALSE, (guint) 0);
 	gtk_widget_show_all ((GtkWidget*) hbox);
-	resp = gtk_dialog_run (dialog);
+	_tmp32_ = gtk_dialog_run (dialog);
+	resp = _tmp32_;
 	if (resp == GTK_RESPONSE_CLOSE) {
 		main_window_remove_all_tabs (window);
 	} else {
 		if (resp == GTK_RESPONSE_ACCEPT) {
+			GList* _tmp33_ = NULL;
 			GList* selected_docs;
 			GtkTreeIter iter = {0};
+			GtkTreeIter _tmp36_ = {0};
+			gboolean _tmp37_;
 			gboolean valid;
+			_tmp33_ = main_window_get_documents (window);
 			{
 				GList* doc_collection;
 				GList* doc_it;
-				doc_collection = main_window_get_documents (window);
+				doc_collection = _tmp33_;
 				for (doc_it = doc_collection; doc_it != NULL; doc_it = doc_it->next) {
+					Document* _tmp34_;
 					Document* doc;
-					doc = _g_object_ref0 ((Document*) doc_it->data);
+					_tmp34_ = _g_object_ref0 ((Document*) doc_it->data);
+					doc = _tmp34_;
 					{
-						if (!document_get_modified (doc)) {
+						gboolean _tmp35_;
+						_tmp35_ = document_get_modified (doc);
+						if (!_tmp35_) {
 							main_window_close_tab (window, doc->tab, FALSE);
 						}
 						_g_object_unref0 (doc);
 					}
 				}
-				__g_list_free_g_object_unref0 (doc_collection);
+				__g_list_free__g_object_unref0_0 (doc_collection);
 			}
 			selected_docs = NULL;
-			valid = gtk_tree_model_get_iter_first ((GtkTreeModel*) _data17_->store, &iter);
+			_tmp37_ = gtk_tree_model_get_iter_first ((GtkTreeModel*) _data17_->store, &_tmp36_);
+			iter = _tmp36_;
+			valid = _tmp37_;
 			while (TRUE) {
 				gboolean selected = FALSE;
-				Document* doc;
+				Document* doc = NULL;
+				gboolean _tmp39_;
 				if (!valid) {
 					break;
 				}
-				doc = NULL;
 				gtk_tree_model_get ((GtkTreeModel*) _data17_->store, &iter, DIALOGS_UNSAVED_DOC_COLUMN_SAVE, &selected, DIALOGS_UNSAVED_DOC_COLUMN_DOC, &doc, -1, -1);
 				if (selected) {
-					selected_docs = g_list_prepend (selected_docs, _g_object_ref0 (doc));
+					Document* _tmp38_;
+					_tmp38_ = _g_object_ref0 (doc);
+					selected_docs = g_list_prepend (selected_docs, _tmp38_);
 				} else {
 					main_window_close_tab (window, doc->tab, TRUE);
 				}
-				valid = gtk_tree_model_iter_next ((GtkTreeModel*) _data17_->store, &iter);
+				_tmp39_ = gtk_tree_model_iter_next ((GtkTreeModel*) _data17_->store, &iter);
+				valid = _tmp39_;
 				_g_object_unref0 (doc);
 			}
 			selected_docs = g_list_reverse (selected_docs);
@@ -331,17 +417,21 @@ void dialogs_close_several_unsaved_documents (MainWindow* window, GList* unsaved
 				GList* doc_it;
 				doc_collection = selected_docs;
 				for (doc_it = doc_collection; doc_it != NULL; doc_it = doc_it->next) {
+					Document* _tmp40_;
 					Document* doc;
-					doc = _g_object_ref0 ((Document*) doc_it->data);
+					_tmp40_ = _g_object_ref0 ((Document*) doc_it->data);
+					doc = _tmp40_;
 					{
-						if (main_window_save_document (window, doc, FALSE)) {
+						gboolean _tmp41_;
+						_tmp41_ = main_window_save_document (window, doc, FALSE);
+						if (_tmp41_) {
 							main_window_close_tab (window, doc->tab, TRUE);
 						}
 						_g_object_unref0 (doc);
 					}
 				}
 			}
-			__g_list_free_g_object_unref0 (selected_docs);
+			__g_list_free__g_object_unref0_0 (selected_docs);
 		}
 	}
 	gtk_object_destroy ((GtkObject*) dialog);
@@ -360,6 +450,7 @@ void dialogs_close_several_unsaved_documents (MainWindow* window, GList* unsaved
 	_g_object_unref0 (hbox);
 	_g_object_unref0 (dialog);
 	block17_data_unref (_data17_);
+	_data17_ = NULL;
 }
 
 
@@ -375,171 +466,236 @@ GType dialogs_clean_file_column_get_type (void) {
 }
 
 
-static void _lambda13_ (const char* path_str, Block18Data* _data18_) {
+static Block18Data* block18_data_ref (Block18Data* _data18_) {
+	g_atomic_int_inc (&_data18_->_ref_count_);
+	return _data18_;
+}
+
+
+static void block18_data_unref (Block18Data* _data18_) {
+	if (g_atomic_int_dec_and_test (&_data18_->_ref_count_)) {
+		_g_object_unref0 (_data18_->store);
+		g_slice_free (Block18Data, _data18_);
+	}
+}
+
+
+static void _lambda13_ (const gchar* path_str, Block18Data* _data18_) {
+	GtkTreePath* _tmp0_ = NULL;
 	GtkTreePath* path;
 	GtkTreeIter iter = {0};
 	gboolean active = FALSE;
+	GtkTreeIter _tmp1_ = {0};
 	g_return_if_fail (path_str != NULL);
-	path = gtk_tree_path_new_from_string (path_str);
-	gtk_tree_model_get_iter ((GtkTreeModel*) _data18_->store, &iter, path);
+	_tmp0_ = gtk_tree_path_new_from_string (path_str);
+	path = _tmp0_;
+	gtk_tree_model_get_iter ((GtkTreeModel*) _data18_->store, &_tmp1_, path);
+	iter = _tmp1_;
 	gtk_tree_model_get ((GtkTreeModel*) _data18_->store, &iter, DIALOGS_CLEAN_FILE_COLUMN_DELETE, &active, -1, -1);
 	gtk_list_store_set (_data18_->store, &iter, DIALOGS_CLEAN_FILE_COLUMN_DELETE, !active, -1, -1);
 	_gtk_tree_path_free0 (path);
 }
 
 
-static void __lambda13__gtk_cell_renderer_toggle_toggled (GtkCellRendererToggle* _sender, const char* path, gpointer self) {
+static void __lambda13__gtk_cell_renderer_toggle_toggled (GtkCellRendererToggle* _sender, const gchar* path, gpointer self) {
 	_lambda13_ (path, self);
 }
 
 
-static void _vala_array_add17 (char*** array, int* length, int* size, char* value) {
+static void _vala_array_add17 (gchar*** array, int* length, int* size, gchar* value) {
 	if ((*length) == (*size)) {
 		*size = (*size) ? (2 * (*size)) : 4;
-		*array = g_renew (char*, *array, (*size) + 1);
+		*array = g_renew (gchar*, *array, (*size) + 1);
 	}
 	(*array)[(*length)++] = value;
 	(*array)[*length] = NULL;
 }
 
 
-static Block18Data* block18_data_ref (Block18Data* _data18_) {
-	g_atomic_int_inc (&_data18_->_ref_count_);
-	return _data18_;
-}
-
-
-static void block18_data_unref (Block18Data* _data18_) {
-	if (g_atomic_int_dec_and_test (&_data18_->_ref_count_)) {
-		_g_object_unref0 (_data18_->store);
-		g_slice_free (Block18Data, _data18_);
-	}
-}
-
-
-gboolean dialogs_confirm_clean_build_files (MainWindow* window, GFile* directory, char** basenames, int basenames_length1) {
+gboolean dialogs_confirm_clean_build_files (MainWindow* window, GFile* directory, gchar** basenames, int basenames_length1) {
 	gboolean result = FALSE;
 	Block18Data* _data18_;
+	GtkDialog* _tmp0_ = NULL;
 	GtkDialog* dialog;
+	GtkHBox* _tmp1_ = NULL;
 	GtkHBox* hbox;
+	GtkWidget* _tmp2_ = NULL;
+	GtkVBox* _tmp3_;
 	GtkVBox* content_area;
+	GtkImage* _tmp4_ = NULL;
 	GtkImage* image;
+	GtkVBox* _tmp5_ = NULL;
 	GtkVBox* vbox;
+	GtkLabel* _tmp6_ = NULL;
 	GtkLabel* primary_label;
-	char* _tmp0_;
-	char* _tmp1_;
+	const gchar* _tmp7_ = NULL;
+	gchar* _tmp8_;
+	gchar* _tmp9_;
+	gchar* _tmp10_;
+	gchar* _tmp11_;
+	GtkVBox* _tmp12_ = NULL;
 	GtkVBox* vbox2;
+	const gchar* _tmp13_ = NULL;
+	GtkLabel* _tmp14_ = NULL;
 	GtkLabel* select_label;
+	GtkTreeView* _tmp15_ = NULL;
 	GtkTreeView* treeview;
+	GtkListStore* _tmp16_ = NULL;
+	GtkCellRendererToggle* _tmp19_ = NULL;
 	GtkCellRendererToggle* renderer1;
+	GtkTreeViewColumn* _tmp20_ = NULL;
 	GtkTreeViewColumn* column;
+	GtkCellRendererText* _tmp21_ = NULL;
 	GtkCellRendererText* renderer2;
-	GtkTreeViewColumn* _tmp2_;
+	GtkTreeViewColumn* _tmp22_ = NULL;
+	GtkWidget* _tmp23_ = NULL;
 	GtkScrolledWindow* sw;
 	gboolean ret;
+	gint _tmp24_;
 	g_return_val_if_fail (window != NULL, FALSE);
 	g_return_val_if_fail (directory != NULL, FALSE);
 	_data18_ = g_slice_new0 (Block18Data);
 	_data18_->_ref_count_ = 1;
 	g_return_if_fail (basenames_length1 > 0);
-	dialog = g_object_ref_sink ((GtkDialog*) gtk_dialog_new_with_buttons (NULL, (GtkWindow*) window, GTK_DIALOG_DESTROY_WITH_PARENT, GTK_STOCK_CANCEL, GTK_RESPONSE_CANCEL, GTK_STOCK_DELETE, GTK_RESPONSE_ACCEPT, NULL, NULL));
+	_tmp0_ = (GtkDialog*) gtk_dialog_new_with_buttons (NULL, (GtkWindow*) window, GTK_DIALOG_DESTROY_WITH_PARENT, GTK_STOCK_CANCEL, GTK_RESPONSE_CANCEL, GTK_STOCK_DELETE, GTK_RESPONSE_ACCEPT, NULL, NULL);
+	dialog = g_object_ref_sink (_tmp0_);
 	gtk_dialog_set_has_separator (dialog, FALSE);
-	hbox = g_object_ref_sink ((GtkHBox*) gtk_hbox_new (FALSE, 12));
+	_tmp1_ = (GtkHBox*) gtk_hbox_new (FALSE, 12);
+	hbox = g_object_ref_sink (_tmp1_);
 	gtk_container_set_border_width ((GtkContainer*) hbox, (guint) 5);
-	content_area = _g_object_ref0 (GTK_VBOX (gtk_dialog_get_content_area (dialog)));
+	_tmp2_ = gtk_dialog_get_content_area (dialog);
+	_tmp3_ = _g_object_ref0 (GTK_VBOX (_tmp2_));
+	content_area = _tmp3_;
 	gtk_box_pack_start ((GtkBox*) content_area, (GtkWidget*) hbox, TRUE, TRUE, (guint) 0);
-	image = g_object_ref_sink ((GtkImage*) gtk_image_new_from_stock (GTK_STOCK_DIALOG_WARNING, GTK_ICON_SIZE_DIALOG));
-	gtk_misc_set_alignment ((GtkMisc*) image, (float) 0.5, (float) 0.0);
+	_tmp4_ = (GtkImage*) gtk_image_new_from_stock (GTK_STOCK_DIALOG_WARNING, GTK_ICON_SIZE_DIALOG);
+	image = g_object_ref_sink (_tmp4_);
+	gtk_misc_set_alignment ((GtkMisc*) image, (gfloat) 0.5, (gfloat) 0.0);
 	gtk_box_pack_start ((GtkBox*) hbox, (GtkWidget*) image, FALSE, FALSE, (guint) 0);
-	vbox = g_object_ref_sink ((GtkVBox*) gtk_vbox_new (FALSE, 12));
+	_tmp5_ = (GtkVBox*) gtk_vbox_new (FALSE, 12);
+	vbox = g_object_ref_sink (_tmp5_);
 	gtk_box_pack_start ((GtkBox*) hbox, (GtkWidget*) vbox, TRUE, TRUE, (guint) 0);
-	primary_label = g_object_ref_sink ((GtkLabel*) gtk_label_new (NULL));
+	_tmp6_ = (GtkLabel*) gtk_label_new (NULL);
+	primary_label = g_object_ref_sink (_tmp6_);
 	gtk_label_set_line_wrap (primary_label, TRUE);
 	gtk_label_set_use_markup (primary_label, TRUE);
-	gtk_misc_set_alignment ((GtkMisc*) primary_label, (float) 0.0, (float) 0.5);
+	gtk_misc_set_alignment ((GtkMisc*) primary_label, (gfloat) 0.0, (gfloat) 0.5);
 	gtk_label_set_selectable (primary_label, TRUE);
-	gtk_label_set_markup (primary_label, _tmp1_ = g_strconcat (_tmp0_ = g_strconcat ("<span weight=\"bold\" size=\"larger\">", _ ("Do you really want to delete these files?"), NULL), "</span>", NULL));
-	_g_free0 (_tmp1_);
-	_g_free0 (_tmp0_);
+	_tmp7_ = _ ("Do you really want to delete these files?");
+	_tmp8_ = g_strconcat ("<span weight=\"bold\" size=\"larger\">", _tmp7_, NULL);
+	_tmp9_ = _tmp8_;
+	_tmp10_ = g_strconcat (_tmp9_, "</span>", NULL);
+	_tmp11_ = _tmp10_;
+	gtk_label_set_markup (primary_label, _tmp11_);
+	_g_free0 (_tmp11_);
+	_g_free0 (_tmp9_);
 	gtk_box_pack_start ((GtkBox*) vbox, (GtkWidget*) primary_label, FALSE, FALSE, (guint) 0);
-	vbox2 = g_object_ref_sink ((GtkVBox*) gtk_vbox_new (FALSE, 8));
-	gtk_box_pack_start ((GtkBox*) vbox, (GtkWidget*) vbox2, FALSE, FALSE, 0);
-	select_label = g_object_ref_sink ((GtkLabel*) gtk_label_new (_ ("Select the files you want to delete:")));
+	_tmp12_ = (GtkVBox*) gtk_vbox_new (FALSE, 8);
+	vbox2 = g_object_ref_sink (_tmp12_);
+	gtk_box_pack_start ((GtkBox*) vbox, (GtkWidget*) vbox2, FALSE, FALSE, (guint) 0);
+	_tmp13_ = _ ("Select the files you want to delete:");
+	_tmp14_ = (GtkLabel*) gtk_label_new (_tmp13_);
+	select_label = g_object_ref_sink (_tmp14_);
 	gtk_label_set_line_wrap (select_label, TRUE);
-	gtk_misc_set_alignment ((GtkMisc*) select_label, (float) 0.0, (float) 0.5);
+	gtk_misc_set_alignment ((GtkMisc*) select_label, (gfloat) 0.0, (gfloat) 0.5);
 	gtk_box_pack_start ((GtkBox*) vbox2, (GtkWidget*) select_label, FALSE, FALSE, (guint) 0);
-	treeview = g_object_ref_sink ((GtkTreeView*) gtk_tree_view_new ());
+	_tmp15_ = (GtkTreeView*) gtk_tree_view_new ();
+	treeview = g_object_ref_sink (_tmp15_);
 	gtk_widget_set_size_request ((GtkWidget*) treeview, 260, 120);
 	gtk_tree_view_set_headers_visible (treeview, FALSE);
 	gtk_tree_view_set_enable_search (treeview, FALSE);
-	_data18_->store = gtk_list_store_new ((gint) DIALOGS_CLEAN_FILE_COLUMN_N_COLUMNS, G_TYPE_BOOLEAN, G_TYPE_STRING);
+	_tmp16_ = gtk_list_store_new ((gint) DIALOGS_CLEAN_FILE_COLUMN_N_COLUMNS, G_TYPE_BOOLEAN, G_TYPE_STRING);
+	_data18_->store = _tmp16_;
 	{
-		char** basename_collection;
+		gchar** basename_collection;
 		int basename_collection_length1;
 		int basename_it;
 		basename_collection = basenames;
 		basename_collection_length1 = basenames_length1;
 		for (basename_it = 0; basename_it < basenames_length1; basename_it = basename_it + 1) {
-			char* basename;
-			basename = g_strdup (basename_collection[basename_it]);
+			gchar* _tmp17_;
+			gchar* basename;
+			_tmp17_ = g_strdup (basename_collection[basename_it]);
+			basename = _tmp17_;
 			{
 				GtkTreeIter iter = {0};
-				gtk_list_store_append (_data18_->store, &iter);
+				GtkTreeIter _tmp18_ = {0};
+				gtk_list_store_append (_data18_->store, &_tmp18_);
+				iter = _tmp18_;
 				gtk_list_store_set (_data18_->store, &iter, DIALOGS_CLEAN_FILE_COLUMN_DELETE, TRUE, DIALOGS_CLEAN_FILE_COLUMN_NAME, basename, -1, -1);
 				_g_free0 (basename);
 			}
 		}
 	}
 	gtk_tree_view_set_model (treeview, (GtkTreeModel*) _data18_->store);
-	renderer1 = g_object_ref_sink ((GtkCellRendererToggle*) gtk_cell_renderer_toggle_new ());
+	_tmp19_ = (GtkCellRendererToggle*) gtk_cell_renderer_toggle_new ();
+	renderer1 = g_object_ref_sink (_tmp19_);
 	g_signal_connect_data (renderer1, "toggled", (GCallback) __lambda13__gtk_cell_renderer_toggle_toggled, block18_data_ref (_data18_), (GClosureNotify) block18_data_unref, 0);
-	column = g_object_ref_sink (gtk_tree_view_column_new_with_attributes ("Delete?", (GtkCellRenderer*) renderer1, "active", DIALOGS_CLEAN_FILE_COLUMN_DELETE, NULL, NULL));
+	_tmp20_ = gtk_tree_view_column_new_with_attributes ("Delete?", (GtkCellRenderer*) renderer1, "active", DIALOGS_CLEAN_FILE_COLUMN_DELETE, NULL, NULL);
+	column = g_object_ref_sink (_tmp20_);
 	gtk_tree_view_append_column (treeview, column);
-	renderer2 = g_object_ref_sink ((GtkCellRendererText*) gtk_cell_renderer_text_new ());
-	column = (_tmp2_ = g_object_ref_sink (gtk_tree_view_column_new_with_attributes ("Name", (GtkCellRenderer*) renderer2, "text", DIALOGS_CLEAN_FILE_COLUMN_NAME, NULL, NULL)), _g_object_unref0 (column), _tmp2_);
+	_tmp21_ = (GtkCellRendererText*) gtk_cell_renderer_text_new ();
+	renderer2 = g_object_ref_sink (_tmp21_);
+	_tmp22_ = gtk_tree_view_column_new_with_attributes ("Name", (GtkCellRenderer*) renderer2, "text", DIALOGS_CLEAN_FILE_COLUMN_NAME, NULL, NULL);
+	_g_object_unref0 (column);
+	column = g_object_ref_sink (_tmp22_);
 	gtk_tree_view_append_column (treeview, column);
-	sw = GTK_SCROLLED_WINDOW (utils_add_scrollbar ((GtkWidget*) treeview));
+	_tmp23_ = utils_add_scrollbar ((GtkWidget*) treeview);
+	sw = GTK_SCROLLED_WINDOW (_tmp23_);
 	gtk_scrolled_window_set_shadow_type (sw, GTK_SHADOW_IN);
 	gtk_box_pack_start ((GtkBox*) vbox2, (GtkWidget*) sw, TRUE, TRUE, (guint) 0);
 	gtk_widget_show_all ((GtkWidget*) hbox);
 	ret = FALSE;
-	if (gtk_dialog_run (dialog) == GTK_RESPONSE_ACCEPT) {
+	_tmp24_ = gtk_dialog_run (dialog);
+	if (_tmp24_ == GTK_RESPONSE_ACCEPT) {
+		gchar** _tmp25_ = NULL;
+		gchar** selected_files;
 		gint selected_files_length1;
 		gint _selected_files_size_;
-		char** _tmp4_;
-		char** _tmp3_ = NULL;
-		char** selected_files;
 		GtkTreeIter iter = {0};
+		GtkTreeIter _tmp26_ = {0};
+		gboolean _tmp27_;
 		gboolean valid;
-		selected_files = (_tmp4_ = (_tmp3_ = g_new0 (char*, 0 + 1), _tmp3_), selected_files_length1 = 0, _selected_files_size_ = selected_files_length1, _tmp4_);
-		valid = gtk_tree_model_get_iter_first ((GtkTreeModel*) _data18_->store, &iter);
+		_tmp25_ = g_new0 (gchar*, 0 + 1);
+		selected_files = _tmp25_;
+		selected_files_length1 = 0;
+		_selected_files_size_ = 0;
+		_tmp27_ = gtk_tree_model_get_iter_first ((GtkTreeModel*) _data18_->store, &_tmp26_);
+		iter = _tmp26_;
+		valid = _tmp27_;
 		while (TRUE) {
 			gboolean selected = FALSE;
-			char* basename;
+			gchar* basename = NULL;
+			gboolean _tmp29_;
 			if (!valid) {
 				break;
 			}
-			basename = NULL;
 			gtk_tree_model_get ((GtkTreeModel*) _data18_->store, &iter, DIALOGS_CLEAN_FILE_COLUMN_DELETE, &selected, DIALOGS_CLEAN_FILE_COLUMN_NAME, &basename, -1, -1);
 			if (selected) {
-				_vala_array_add17 (&selected_files, &selected_files_length1, &_selected_files_size_, g_strdup (basename));
+				gchar* _tmp28_;
+				_tmp28_ = g_strdup (basename);
+				_vala_array_add17 (&selected_files, &selected_files_length1, &_selected_files_size_, _tmp28_);
 			}
-			valid = gtk_tree_model_iter_next ((GtkTreeModel*) _data18_->store, &iter);
+			_tmp29_ = gtk_tree_model_iter_next ((GtkTreeModel*) _data18_->store, &iter);
+			valid = _tmp29_;
 			_g_free0 (basename);
 		}
 		{
-			char** selected_file_collection;
+			gchar** selected_file_collection;
 			int selected_file_collection_length1;
 			int selected_file_it;
 			selected_file_collection = selected_files;
 			selected_file_collection_length1 = selected_files_length1;
 			for (selected_file_it = 0; selected_file_it < selected_files_length1; selected_file_it = selected_file_it + 1) {
-				char* selected_file;
-				selected_file = g_strdup (selected_file_collection[selected_file_it]);
+				gchar* _tmp30_;
+				gchar* selected_file;
+				_tmp30_ = g_strdup (selected_file_collection[selected_file_it]);
+				selected_file = _tmp30_;
 				{
+					GFile* _tmp31_ = NULL;
 					GFile* file;
 					ret = TRUE;
-					file = g_file_get_child (directory, selected_file);
+					_tmp31_ = g_file_get_child (directory, selected_file);
+					file = _tmp31_;
 					utils_delete_file (file);
 					_g_object_unref0 (file);
 					_g_free0 (selected_file);
@@ -564,6 +720,7 @@ gboolean dialogs_confirm_clean_build_files (MainWindow* window, GFile* directory
 	_g_object_unref0 (hbox);
 	_g_object_unref0 (dialog);
 	block18_data_unref (_data18_);
+	_data18_ = NULL;
 	return result;
 }
 
@@ -587,4 +744,3 @@ static void _vala_array_free (gpointer array, gint array_length, GDestroyNotify
 
 
 
-
diff --git a/src/C/document.c b/src/C/document.c
index c081ec7..911aef0 100644
--- a/src/C/document.c
+++ b/src/C/document.c
@@ -1,4 +1,4 @@
-/* document.c generated by valac 0.10.3, the Vala compiler
+/* document.c generated by valac 0.12.1, the Vala compiler
  * generated from document.vala, do not modify */
 
 /*
@@ -72,8 +72,8 @@ typedef struct _DocumentTabClass DocumentTabClass;
 
 typedef struct _CompletionProvider CompletionProvider;
 typedef struct _CompletionProviderClass CompletionProviderClass;
-typedef struct _CompletionProviderPrivate CompletionProviderPrivate;
 typedef struct _Block14Data Block14Data;
+typedef struct _CompletionProviderPrivate CompletionProviderPrivate;
 
 #define TYPE_TAB_INFO_BAR (tab_info_bar_get_type ())
 #define TAB_INFO_BAR(obj) (G_TYPE_CHECK_INSTANCE_CAST ((obj), TYPE_TAB_INFO_BAR, TabInfoBar))
@@ -102,6 +102,17 @@ typedef struct _Project Project;
 #define _projects_unref0(var) ((var == NULL) ? NULL : (var = (projects_unref (var), NULL)))
 #define _project_free0(var) ((var == NULL) ? NULL : (var = (project_free (var), NULL)))
 
+#define TYPE_APPLICATION (application_get_type ())
+#define APPLICATION(obj) (G_TYPE_CHECK_INSTANCE_CAST ((obj), TYPE_APPLICATION, Application))
+#define APPLICATION_CLASS(klass) (G_TYPE_CHECK_CLASS_CAST ((klass), TYPE_APPLICATION, ApplicationClass))
+#define IS_APPLICATION(obj) (G_TYPE_CHECK_INSTANCE_TYPE ((obj), TYPE_APPLICATION))
+#define IS_APPLICATION_CLASS(klass) (G_TYPE_CHECK_CLASS_TYPE ((klass), TYPE_APPLICATION))
+#define APPLICATION_GET_CLASS(obj) (G_TYPE_INSTANCE_GET_CLASS ((obj), TYPE_APPLICATION, ApplicationClass))
+
+typedef struct _Application Application;
+typedef struct _ApplicationClass ApplicationClass;
+#define __g_list_free__g_object_unref0_0(var) ((var == NULL) ? NULL : (var = (_g_list_free__g_object_unref0_ (var), NULL)))
+
 #define TYPE_DOCUMENT_VIEW (document_view_get_type ())
 #define DOCUMENT_VIEW(obj) (G_TYPE_CHECK_INSTANCE_CAST ((obj), TYPE_DOCUMENT_VIEW, DocumentView))
 #define DOCUMENT_VIEW_CLASS(klass) (G_TYPE_CHECK_CLASS_CAST ((klass), TYPE_DOCUMENT_VIEW, DocumentViewClass))
@@ -132,6 +143,7 @@ struct _Document {
 	GtkSourceBuffer parent_instance;
 	DocumentPrivate * priv;
 	DocumentTab* tab;
+	guint _unsaved_doc_num;
 };
 
 struct _DocumentClass {
@@ -141,15 +153,14 @@ struct _DocumentClass {
 struct _DocumentPrivate {
 	GFile* _location;
 	gboolean _readonly;
-	guint _unsaved_document_n;
 	gint _project_id;
 	gboolean backup_made;
-	char* _etag;
-	char* encoding;
+	gchar* _etag;
+	gchar* encoding;
 	gboolean new_file;
 	GtkTextTag* found_tag;
 	GtkTextTag* found_tag_selected;
-	char* search_text;
+	gchar* search_text;
 	guint search_nb_matches;
 	guint search_num_match;
 	gboolean search_case_sensitive;
@@ -157,6 +168,12 @@ struct _DocumentPrivate {
 	gboolean stop_cursor_moved_emission;
 };
 
+struct _Block14Data {
+	int _ref_count_;
+	Document * self;
+	CompletionProvider* provider;
+};
+
 struct _CompletionProvider {
 	GObject parent_instance;
 	CompletionProviderPrivate * priv;
@@ -167,12 +184,6 @@ struct _CompletionProviderClass {
 	GObjectClass parent_class;
 };
 
-struct _Block14Data {
-	int _ref_count_;
-	Document * self;
-	CompletionProvider* provider;
-};
-
 struct _Block15Data {
 	int _ref_count_;
 	Document * self;
@@ -195,7 +206,6 @@ enum  {
 	DOCUMENT_DUMMY_PROPERTY,
 	DOCUMENT_LOCATION,
 	DOCUMENT_READONLY,
-	DOCUMENT_UNSAVED_DOCUMENT_N,
 	DOCUMENT_PROJECT_ID
 };
 Document* document_new (void);
@@ -212,26 +222,26 @@ static void __lambda9__gtk_text_buffer_changed (GtkTextBuffer* _sender, gpointer
 static void document_sync_found_tags (Document* self);
 static void _document_sync_found_tags_g_object_notify (GObject* _sender, GParamSpec* pspec, gpointer self);
 gboolean document_get_modified (Document* self);
-void document_insert (Document* self, GtkTextIter* iter, const char* text, gint len);
+void document_insert (Document* self, GtkTextIter* iter, const gchar* text, gint len);
 GType completion_provider_get_type (void) G_GNUC_CONST;
+static Block14Data* block14_data_ref (Block14Data* _data14_);
+static void block14_data_unref (Block14Data* _data14_);
 CompletionProvider* completion_provider_get_default (void);
 static gboolean _lambda10_ (Block14Data* _data14_);
 static gboolean __lambda10__gsource_func (gpointer self);
-static Block14Data* block14_data_ref (Block14Data* _data14_);
-static void block14_data_unref (Block14Data* _data14_);
 void document_load (Document* self, GFile* location);
 void document_set_location (Document* self, GFile* value);
-void document_set_contents (Document* self, const char* contents);
-static char* document_to_utf8 (Document* self, const char* text, GError** error);
+void document_set_contents (Document* self, const gchar* contents);
+static gchar* document_to_utf8 (Document* self, const gchar* text, GError** error);
 GType tab_info_bar_get_type (void) G_GNUC_CONST;
-TabInfoBar* document_tab_add_message (DocumentTab* self, const char* primary_msg, const char* secondary_msg, GtkMessageType msg_type);
+TabInfoBar* document_tab_add_message (DocumentTab* self, const gchar* primary_msg, const gchar* secondary_msg, GtkMessageType msg_type);
 void document_save (Document* self, gboolean check_file_changed_on_disk, gboolean force);
 GFile* document_get_location (Document* self);
-void tab_info_bar_add_stock_button_with_text (TabInfoBar* self, const char* text, const char* stock_id, gint response_id);
-static void _lambda12_ (gint response_id, Block15Data* _data15_);
-static void __lambda12__gtk_info_bar_response (GtkInfoBar* _sender, gint response_id, gpointer self);
 static Block15Data* block15_data_ref (Block15Data* _data15_);
 static void block15_data_unref (Block15Data* _data15_);
+void tab_info_bar_add_stock_button_with_text (TabInfoBar* self, const gchar* text, const gchar* stock_id, gint response_id);
+static void _lambda12_ (gint response_id, Block15Data* _data15_);
+static void __lambda12__gtk_info_bar_response (GtkInfoBar* _sender, gint response_id, gpointer self);
 void tab_info_bar_add_ok_button (TabInfoBar* self);
 gpointer projects_ref (gpointer instance);
 void projects_unref (gpointer instance);
@@ -248,35 +258,42 @@ void project_copy (const Project* self, Project* dest);
 void project_destroy (Project* self);
 GeeLinkedList* projects_get_projects (Projects* self);
 void document_set_project_id (Document* self, gint value);
-char* document_get_uri_for_display (Document* self);
-static char* document_get_unsaved_document_name (Document* self);
-char* utils_replace_home_dir_with_tilde (const char* uri);
-char* document_get_short_name_for_display (Document* self);
-guint document_get_unsaved_document_n (Document* self);
+gchar* document_get_uri_for_display (Document* self);
+static gchar* document_get_unsaved_document_name (Document* self);
+gchar* utils_replace_home_dir_with_tilde (const gchar* uri);
+gchar* document_get_short_name_for_display (Document* self);
+static guint document_get_unsaved_document_num (Document* self);
+GType application_get_type (void) G_GNUC_CONST;
+Application* application_get_default (void);
+GList* application_get_documents (Application* self);
+static void _vala_array_add15 (guint** array, int* length, int* size, guint value);
+static void _g_object_unref0_ (gpointer var);
+static void _g_list_free__g_object_unref0_ (GList* self);
+static gboolean _vala_uint_array_contains (guint* stack, int stack_length, guint needle);
 gboolean document_is_local (Document* self);
 gboolean document_is_externally_modified (Document* self);
-void document_set_style_scheme_from_string (Document* self, const char* scheme_id);
-static void document_insert_text_at_beginning_of_selected_lines (Document* self, const char* text);
+void document_set_style_scheme_from_string (Document* self, const gchar* scheme_id);
+static void document_insert_text_at_beginning_of_selected_lines (Document* self, const gchar* text);
 void document_comment_selected_lines (Document* self);
 void document_uncomment_selected_lines (Document* self);
 void document_select_lines (Document* self, gint start, gint end);
 GType document_view_get_type (void) G_GNUC_CONST;
 DocumentView* document_tab_get_view (DocumentTab* self);
-void document_view_scroll_to_cursor (DocumentView* self, double margin);
+void document_view_scroll_to_cursor (DocumentView* self, gdouble margin);
 SelectionType document_get_selection_type (Document* self);
-gboolean document_is_tex_document (Document* self);
 GType main_window_get_type (void) G_GNUC_CONST;
 gboolean document_clean_build_files (Document* self, MainWindow* window);
+gboolean document_is_main_file_a_tex_file (Document* self);
 GFile* document_get_main_file (Document* self);
-char* utils_get_shortname (const char* path);
+gchar* utils_get_shortname (const gchar* path);
 void utils_delete_file (GFile* file);
-static void _vala_array_add16 (char*** array, int* length, int* size, char* value);
-gboolean dialogs_confirm_clean_build_files (MainWindow* window, GFile* directory, char** basenames, int basenames_length1);
+static void _vala_array_add16 (gchar*** array, int* length, int* size, gchar* value);
+gboolean dialogs_confirm_clean_build_files (MainWindow* window, GFile* directory, gchar** basenames, int basenames_length1);
 gboolean document_goto_line (Document* self, gint line);
 gint document_get_project_id (Document* self);
 Project* projects_get (Projects* self, gint id);
-char* document_get_current_indentation (Document* self, gint line);
-void document_set_search_text (Document* self, const char* text, gboolean case_sensitive, gboolean entire_word, guint* nb_matches, guint* num_match, gboolean select);
+gchar* document_get_current_indentation (Document* self, gint line);
+void document_set_search_text (Document* self, const gchar* text, gboolean case_sensitive, gboolean entire_word, guint* nb_matches, guint* num_match, gboolean select);
 static void document_search_cursor_moved_handler (Document* self);
 static void _document_search_cursor_moved_handler_document_cursor_moved (Document* _sender, gpointer self);
 static void document_search_delete_range_before_handler (Document* self, GtkTextIter* start, GtkTextIter* end);
@@ -284,14 +301,15 @@ static void _document_search_delete_range_before_handler_gtk_text_buffer_delete_
 static void document_search_delete_range_after_handler (Document* self, GtkTextIter* location);
 static void _document_search_delete_range_after_handler_gtk_text_buffer_delete_range (GtkTextBuffer* _sender, GtkTextIter* start, GtkTextIter* end, gpointer self);
 static void document_search_insert_text_before_handler (Document* self, GtkTextIter* location);
-static void _document_search_insert_text_before_handler_gtk_text_buffer_insert_text (GtkTextBuffer* _sender, GtkTextIter* pos, const char* text, gint length, gpointer self);
-static void document_search_insert_text_after_handler (Document* self, GtkTextIter* location, const char* text, gint len);
-static void _document_search_insert_text_after_handler_gtk_text_buffer_insert_text (GtkTextBuffer* _sender, GtkTextIter* pos, const char* text, gint length, gpointer self);
+static void _document_search_insert_text_before_handler_gtk_text_buffer_insert_text (GtkTextBuffer* _sender, GtkTextIter* pos, const gchar* text, gint length, gpointer self);
+static void document_search_insert_text_after_handler (Document* self, GtkTextIter* location, const gchar* text, gint len);
+static void _document_search_insert_text_after_handler_gtk_text_buffer_insert_text (GtkTextBuffer* _sender, GtkTextIter* pos, const gchar* text, gint length, gpointer self);
 static void document_invalidate_search_selected_marks (Document* self);
 void document_clear_search (Document* self, gboolean disconnect_signals);
 static gboolean document_iter_forward_search (Document* self, GtkTextIter* start, GtkTextIter* end, GtkTextIter* match_start, GtkTextIter* match_end);
 static void document_move_search_marks (Document* self, GtkTextIter* start, GtkTextIter* end, gboolean move_cursor);
 static void document_clear_search_tags (Document* self);
+void document_select_selected_search_text (Document* self);
 void document_search_forward (Document* self);
 static void document_replace_found_tag_selected (Document* self);
 static void document_find_num_match (Document* self);
@@ -300,22 +318,19 @@ static gboolean document_iter_backward_search (Document* self, GtkTextIter* star
 static GtkSourceSearchFlags document_get_search_flags (Document* self);
 static void document_search_matches_between (Document* self, GtkTextIter* start_search, GtkTextIter* stop_search);
 static void document_set_search_match_colors (Document* self, GtkTextTag* text_tag);
-void document_replace (Document* self, const char* text);
+void document_replace (Document* self, const gchar* text);
 gboolean document_get_readonly (Document* self);
-void document_replace_all (Document* self, const char* text);
+void document_replace_all (Document* self, const gchar* text);
 void document_set_readonly (Document* self, gboolean value);
-void document_set_unsaved_document_n (Document* self, guint value);
+static void g_cclosure_user_marshal_VOID__BOOLEAN_UINT_UINT (GClosure * closure, GValue * return_value, guint n_param_values, const GValue * param_values, gpointer invocation_hint, gpointer marshal_data);
 static void document_finalize (GObject* obj);
-static void document_get_property (GObject * object, guint property_id, GValue * value, GParamSpec * pspec);
-static void document_set_property (GObject * object, guint property_id, const GValue * value, GParamSpec * pspec);
+static void _vala_document_get_property (GObject * object, guint property_id, GValue * value, GParamSpec * pspec);
+static void _vala_document_set_property (GObject * object, guint property_id, const GValue * value, GParamSpec * pspec);
 static void _vala_array_destroy (gpointer array, gint array_length, GDestroyNotify destroy_func);
 static void _vala_array_free (gpointer array, gint array_length, GDestroyNotify destroy_func);
 static gint _vala_array_length (gpointer array);
-static int _vala_strcmp0 (const char * str1, const char * str2);
 
-extern const char* ENCODINGS_CHARSETS[60];
-
-static void g_cclosure_user_marshal_VOID__BOOLEAN_UINT_UINT (GClosure * closure, GValue * return_value, guint n_param_values, const GValue * param_values, gpointer invocation_hint, gpointer marshal_data);
+extern const gchar* ENCODINGS_CHARSETS[60];
 
 GType selection_type_get_type (void) {
 	static volatile gsize selection_type_type_id__volatile = 0;
@@ -346,8 +361,10 @@ static void __lambda7__g_object_notify (GObject* _sender, GParamSpec* pspec, gpo
 
 
 static void _lambda8_ (GtkTextIter* location, GtkTextMark* mark, Document* self) {
+	GtkTextMark* _tmp0_ = NULL;
 	g_return_if_fail (mark != NULL);
-	if (mark == gtk_text_buffer_get_insert ((GtkTextBuffer*) self)) {
+	_tmp0_ = gtk_text_buffer_get_insert ((GtkTextBuffer*) self);
+	if (mark == _tmp0_) {
 		document_emit_cursor_moved (self);
 	}
 }
@@ -375,26 +392,42 @@ static void _document_sync_found_tags_g_object_notify (GObject* _sender, GParamS
 
 
 Document* document_construct (GType object_type) {
-	Document * self;
+	Document * self = NULL;
+	GtkSourceLanguageManager* _tmp0_ = NULL;
+	GtkSourceLanguageManager* _tmp1_;
 	GtkSourceLanguageManager* lm;
-	GtkTextTag* _tmp0_;
-	GtkTextTag* _tmp1_;
+	GtkSourceLanguage* _tmp2_ = NULL;
+	GtkTextTag* _tmp3_ = NULL;
+	GtkTextTag* _tmp4_ = NULL;
+	GtkTextTagTable* _tmp5_ = NULL;
+	GtkTextTagTable* _tmp6_;
 	GtkTextTagTable* tag_table;
 	GtkTextIter iter = {0};
-	self = g_object_newv (object_type, 0, NULL);
-	lm = _g_object_ref0 (gtk_source_language_manager_get_default ());
-	gtk_source_buffer_set_language ((GtkSourceBuffer*) self, gtk_source_language_manager_get_language (lm, "latex"));
+	GtkTextIter _tmp7_ = {0};
+	self = (Document*) g_object_new (object_type, NULL);
+	_tmp0_ = gtk_source_language_manager_get_default ();
+	_tmp1_ = _g_object_ref0 (_tmp0_);
+	lm = _tmp1_;
+	_tmp2_ = gtk_source_language_manager_get_language (lm, "latex");
+	gtk_source_buffer_set_language ((GtkSourceBuffer*) self, _tmp2_);
 	g_signal_connect_object ((GObject*) self, "notify::location", (GCallback) __lambda7__g_object_notify, self, 0);
 	g_signal_connect_object ((GtkTextBuffer*) self, "mark-set", (GCallback) __lambda8__gtk_text_buffer_mark_set, self, 0);
 	g_signal_connect_object ((GtkTextBuffer*) self, "changed", (GCallback) __lambda9__gtk_text_buffer_changed, self, 0);
-	self->priv->found_tag = (_tmp0_ = gtk_text_tag_new ("found"), _g_object_unref0 (self->priv->found_tag), _tmp0_);
-	self->priv->found_tag_selected = (_tmp1_ = gtk_text_tag_new ("found_selected"), _g_object_unref0 (self->priv->found_tag_selected), _tmp1_);
+	_tmp3_ = gtk_text_tag_new ("found");
+	_g_object_unref0 (self->priv->found_tag);
+	self->priv->found_tag = _tmp3_;
+	_tmp4_ = gtk_text_tag_new ("found_selected");
+	_g_object_unref0 (self->priv->found_tag_selected);
+	self->priv->found_tag_selected = _tmp4_;
 	document_sync_found_tags (self);
-	tag_table = _g_object_ref0 (gtk_text_buffer_get_tag_table ((GtkTextBuffer*) self));
+	_tmp5_ = gtk_text_buffer_get_tag_table ((GtkTextBuffer*) self);
+	_tmp6_ = _g_object_ref0 (_tmp5_);
+	tag_table = _tmp6_;
 	gtk_text_tag_table_add (tag_table, self->priv->found_tag);
 	gtk_text_tag_table_add (tag_table, self->priv->found_tag_selected);
 	g_signal_connect_object ((GObject*) self, "notify::style-scheme", (GCallback) _document_sync_found_tags_g_object_notify, self, 0);
-	gtk_text_buffer_get_iter_at_line ((GtkTextBuffer*) self, &iter, 0);
+	gtk_text_buffer_get_iter_at_line ((GtkTextBuffer*) self, &_tmp7_, 0);
+	iter = _tmp7_;
 	gtk_text_buffer_create_mark ((GtkTextBuffer*) self, "search_selected_start", &iter, TRUE);
 	gtk_text_buffer_create_mark ((GtkTextBuffer*) self, "search_selected_end", &iter, TRUE);
 	_g_object_unref0 (tag_table);
@@ -410,16 +443,33 @@ Document* document_new (void) {
 
 gboolean document_get_modified (Document* self) {
 	gboolean result = FALSE;
+	gboolean _tmp0_;
 	g_return_val_if_fail (self != NULL, FALSE);
 	if (self->priv->new_file) {
 		result = FALSE;
 		return result;
 	}
-	result = gtk_text_buffer_get_modified ((GtkTextBuffer*) GTK_SOURCE_BUFFER (self));
+	_tmp0_ = gtk_text_buffer_get_modified ((GtkTextBuffer*) GTK_SOURCE_BUFFER (self));
+	result = _tmp0_;
 	return result;
 }
 
 
+static Block14Data* block14_data_ref (Block14Data* _data14_) {
+	g_atomic_int_inc (&_data14_->_ref_count_);
+	return _data14_;
+}
+
+
+static void block14_data_unref (Block14Data* _data14_) {
+	if (g_atomic_int_dec_and_test (&_data14_->_ref_count_)) {
+		_g_object_unref0 (_data14_->self);
+		_g_object_unref0 (_data14_->provider);
+		g_slice_free (Block14Data, _data14_);
+	}
+}
+
+
 static gboolean _lambda10_ (Block14Data* _data14_) {
 	Document * self;
 	gboolean result = FALSE;
@@ -437,90 +487,94 @@ static gboolean __lambda10__gsource_func (gpointer self) {
 }
 
 
-static Block14Data* block14_data_ref (Block14Data* _data14_) {
-	g_atomic_int_inc (&_data14_->_ref_count_);
-	return _data14_;
-}
-
-
-static void block14_data_unref (Block14Data* _data14_) {
-	if (g_atomic_int_dec_and_test (&_data14_->_ref_count_)) {
-		_g_object_unref0 (_data14_->self);
-		_g_object_unref0 (_data14_->provider);
-		g_slice_free (Block14Data, _data14_);
-	}
-}
-
-
-void document_insert (Document* self, GtkTextIter* iter, const char* text, gint len) {
+void document_insert (Document* self, GtkTextIter* iter, const gchar* text, gint len) {
 	Block14Data* _data14_;
+	CompletionProvider* _tmp0_ = NULL;
 	g_return_if_fail (self != NULL);
 	g_return_if_fail (text != NULL);
 	_data14_ = g_slice_new0 (Block14Data);
 	_data14_->_ref_count_ = 1;
 	_data14_->self = g_object_ref (self);
-	_data14_->provider = completion_provider_get_default ();
+	_tmp0_ = completion_provider_get_default ();
+	_data14_->provider = _tmp0_;
 	_data14_->provider->locked = TRUE;
 	gtk_text_buffer_insert ((GtkTextBuffer*) GTK_SOURCE_BUFFER (self), iter, text, len);
 	g_timeout_add_seconds_full (G_PRIORITY_DEFAULT, (guint) 1, __lambda10__gsource_func, block14_data_ref (_data14_), block14_data_unref);
 	block14_data_unref (_data14_);
+	_data14_ = NULL;
 }
 
 
 void document_load (Document* self, GFile* location) {
+	gchar* text = NULL;
+	gchar* _tmp0_ = NULL;
+	gchar* _tmp1_ = NULL;
+	gboolean _tmp2_;
+	GtkRecentManager* _tmp4_ = NULL;
+	gchar* _tmp5_ = NULL;
+	gchar* _tmp6_;
 	GError * _inner_error_ = NULL;
 	g_return_if_fail (self != NULL);
 	g_return_if_fail (location != NULL);
 	document_set_location (self, location);
-	{
-		char* text;
-		char* _tmp0_ = NULL;
-		char* _tmp1_;
-		char* _tmp2_ = NULL;
-		char* _tmp3_;
-		char* _tmp4_;
-		text = NULL;
-		(g_file_load_contents (location, NULL, &_tmp0_, NULL, &_tmp2_, &_inner_error_), text = (_tmp1_ = _tmp0_, _g_free0 (text), _tmp1_));
-		self->priv->_etag = (_tmp3_ = _tmp2_, _g_free0 (self->priv->_etag), _tmp3_);
+	g_file_load_contents (location, NULL, &_tmp0_, NULL, &_tmp1_, &_inner_error_);
+	_g_free0 (text);
+	text = _tmp0_;
+	_g_free0 (self->priv->_etag);
+	self->priv->_etag = _tmp1_;
+	if (_inner_error_ != NULL) {
+		_g_free0 (text);
+		goto __catch33_g_error;
+	}
+	_tmp2_ = g_utf8_validate (text, (gssize) (-1), NULL);
+	if (_tmp2_) {
+		document_set_contents (self, text);
+	} else {
+		gchar* _tmp3_ = NULL;
+		gchar* utf8_text;
+		_tmp3_ = document_to_utf8 (self, text, &_inner_error_);
+		utf8_text = _tmp3_;
 		if (_inner_error_ != NULL) {
 			_g_free0 (text);
 			goto __catch33_g_error;
 		}
-		if (g_utf8_validate (text, -1, NULL)) {
-			document_set_contents (self, text);
-		} else {
-			char* utf8_text;
-			utf8_text = document_to_utf8 (self, text, &_inner_error_);
-			if (_inner_error_ != NULL) {
-				_g_free0 (text);
-				goto __catch33_g_error;
-			}
-			document_set_contents (self, utf8_text);
-			_g_free0 (utf8_text);
-		}
-		document_update_syntax_highlighting (self);
-		gtk_recent_manager_add_item (gtk_recent_manager_get_default (), _tmp4_ = g_file_get_uri (location));
-		_g_free0 (_tmp4_);
-		_g_free0 (text);
+		document_set_contents (self, utf8_text);
+		_g_free0 (utf8_text);
 	}
+	document_update_syntax_highlighting (self);
+	_tmp4_ = gtk_recent_manager_get_default ();
+	_tmp5_ = g_file_get_uri (location);
+	_tmp6_ = _tmp5_;
+	gtk_recent_manager_add_item (_tmp4_, _tmp6_);
+	_g_free0 (_tmp6_);
+	_g_free0 (text);
 	goto __finally33;
 	__catch33_g_error:
 	{
 		GError * e;
+		const gchar* _tmp7_ = NULL;
+		gchar* _tmp8_ = NULL;
+		gchar* _tmp9_;
+		gchar* _tmp10_ = NULL;
+		gchar* _tmp11_;
+		gchar* primary_msg;
+		TabInfoBar* _tmp12_ = NULL;
+		TabInfoBar* _tmp13_;
 		e = _inner_error_;
 		_inner_error_ = NULL;
-		{
-			char* _tmp5_;
-			char* _tmp6_;
-			char* primary_msg;
-			TabInfoBar* _tmp7_;
-			fprintf (stderr, "Error: %s\n", e->message);
-			primary_msg = (_tmp6_ = g_strdup_printf (_ ("Impossible to load the file '%s'."), _tmp5_ = g_file_get_parse_name (location)), _g_free0 (_tmp5_), _tmp6_);
-			_tmp7_ = document_tab_add_message (self->tab, primary_msg, e->message, GTK_MESSAGE_ERROR);
-			_g_object_unref0 (_tmp7_);
-			_g_free0 (primary_msg);
-			_g_error_free0 (e);
-		}
+		fprintf (stderr, "Error: %s\n", e->message);
+		_tmp7_ = _ ("Impossible to load the file '%s'.");
+		_tmp8_ = g_file_get_parse_name (location);
+		_tmp9_ = _tmp8_;
+		_tmp10_ = g_strdup_printf (_tmp7_, _tmp9_);
+		_tmp11_ = _tmp10_;
+		_g_free0 (_tmp9_);
+		primary_msg = _tmp11_;
+		_tmp12_ = document_tab_add_message (self->tab, primary_msg, e->message, GTK_MESSAGE_ERROR);
+		_tmp13_ = _tmp12_;
+		_g_object_unref0 (_tmp13_);
+		_g_free0 (primary_msg);
+		_g_error_free0 (e);
 	}
 	__finally33:
 	if (_inner_error_ != NULL) {
@@ -531,22 +585,24 @@ void document_load (Document* self, GFile* location) {
 }
 
 
-static glong string_get_length (const char* self) {
-	glong result;
-	g_return_val_if_fail (self != NULL, 0L);
-	result = g_utf8_strlen (self, (gssize) (-1));
+static gchar string_get (const gchar* self, glong index) {
+	gchar result = '\0';
+	g_return_val_if_fail (self != NULL, '\0');
+	result = ((gchar*) self)[index];
 	return result;
 }
 
 
-static char* string_slice (const char* self, glong start, glong end) {
-	char* result = NULL;
+static gchar* string_slice (const gchar* self, glong start, glong end) {
+	gchar* result = NULL;
+	gint _tmp0_;
 	glong string_length;
-	gboolean _tmp0_ = FALSE;
 	gboolean _tmp1_ = FALSE;
-	const char* start_string;
+	gboolean _tmp2_ = FALSE;
+	gchar* _tmp3_ = NULL;
 	g_return_val_if_fail (self != NULL, NULL);
-	string_length = string_get_length (self);
+	_tmp0_ = strlen (self);
+	string_length = (glong) _tmp0_;
 	if (start < 0) {
 		start = string_length + start;
 	}
@@ -554,75 +610,72 @@ static char* string_slice (const char* self, glong start, glong end) {
 		end = string_length + end;
 	}
 	if (start >= 0) {
-		_tmp0_ = start <= string_length;
+		_tmp1_ = start <= string_length;
 	} else {
-		_tmp0_ = FALSE;
+		_tmp1_ = FALSE;
 	}
-	g_return_val_if_fail (_tmp0_, NULL);
+	g_return_val_if_fail (_tmp1_, NULL);
 	if (end >= 0) {
-		_tmp1_ = end <= string_length;
+		_tmp2_ = end <= string_length;
 	} else {
-		_tmp1_ = FALSE;
+		_tmp2_ = FALSE;
 	}
-	g_return_val_if_fail (_tmp1_, NULL);
+	g_return_val_if_fail (_tmp2_, NULL);
 	g_return_val_if_fail (start <= end, NULL);
-	start_string = g_utf8_offset_to_pointer (self, start);
-	result = g_strndup (start_string, ((gchar*) g_utf8_offset_to_pointer (start_string, end - start)) - ((gchar*) start_string));
+	_tmp3_ = g_strndup (((gchar*) self) + start, (gsize) (end - start));
+	result = _tmp3_;
 	return result;
 }
 
 
-void document_set_contents (Document* self, const char* contents) {
-	char* contents2;
-	char* _tmp1_;
+void document_set_contents (Document* self, const gchar* contents) {
+	gchar* contents2;
+	gint _tmp0_;
+	gchar _tmp1_;
+	gchar* _tmp3_;
+	gchar* _tmp4_;
 	GtkTextIter iter = {0};
+	GtkTextIter _tmp6_ = {0};
 	g_return_if_fail (self != NULL);
 	g_return_if_fail (contents != NULL);
 	contents2 = NULL;
-	if (g_utf8_get_char (g_utf8_offset_to_pointer (contents, string_get_length (contents) - 1)) == '\n') {
-		char* _tmp0_;
-		contents2 = (_tmp0_ = string_slice (contents, (glong) 0, (glong) (-1)), _g_free0 (contents2), _tmp0_);
+	_tmp0_ = strlen (contents);
+	_tmp1_ = string_get (contents, (glong) (_tmp0_ - 1));
+	if (_tmp1_ == '\n') {
+		gchar* _tmp2_ = NULL;
+		_tmp2_ = string_slice (contents, (glong) 0, (glong) (-1));
+		_g_free0 (contents2);
+		contents2 = _tmp2_;
 	}
 	gtk_source_buffer_begin_not_undoable_action ((GtkSourceBuffer*) self);
-	_tmp1_ = g_strdup (contents2);
-	if (_tmp1_ == NULL) {
-		char* _tmp2_;
-		_tmp1_ = (_tmp2_ = g_strdup (contents), _g_free0 (_tmp1_), _tmp2_);
+	_tmp3_ = g_strdup (contents2);
+	_tmp4_ = _tmp3_;
+	if (_tmp4_ == NULL) {
+		gchar* _tmp5_;
+		_tmp5_ = g_strdup (contents);
+		_g_free0 (_tmp4_);
+		_tmp4_ = _tmp5_;
 	}
-	gtk_text_buffer_set_text ((GtkTextBuffer*) self, _tmp1_, -1);
+	gtk_text_buffer_set_text ((GtkTextBuffer*) self, _tmp4_, -1);
 	self->priv->new_file = TRUE;
 	gtk_text_buffer_set_modified ((GtkTextBuffer*) self, FALSE);
 	gtk_source_buffer_end_not_undoable_action ((GtkSourceBuffer*) self);
-	gtk_text_buffer_get_start_iter ((GtkTextBuffer*) self, &iter);
+	gtk_text_buffer_get_start_iter ((GtkTextBuffer*) self, &_tmp6_);
+	iter = _tmp6_;
 	gtk_text_buffer_place_cursor ((GtkTextBuffer*) self, &iter);
-	_g_free0 (_tmp1_);
+	_g_free0 (_tmp4_);
 	_g_free0 (contents2);
 }
 
 
-static const char* string_to_string (const char* self) {
-	const char* result = NULL;
+static const gchar* string_to_string (const gchar* self) {
+	const gchar* result = NULL;
 	g_return_val_if_fail (self != NULL, NULL);
 	result = self;
 	return result;
 }
 
 
-static void _lambda12_ (gint response_id, Block15Data* _data15_) {
-	Document * self;
-	self = _data15_->self;
-	if (response_id == GTK_RESPONSE_YES) {
-		document_save (self, FALSE, FALSE);
-	}
-	gtk_object_destroy ((GtkObject*) _data15_->infobar);
-}
-
-
-static void __lambda12__gtk_info_bar_response (GtkInfoBar* _sender, gint response_id, gpointer self) {
-	_lambda12_ (response_id, self);
-}
-
-
 static Block15Data* block15_data_ref (Block15Data* _data15_) {
 	g_atomic_int_inc (&_data15_->_ref_count_);
 	return _data15_;
@@ -638,12 +691,47 @@ static void block15_data_unref (Block15Data* _data15_) {
 }
 
 
+static void _lambda12_ (gint response_id, Block15Data* _data15_) {
+	Document * self;
+	self = _data15_->self;
+	if (response_id == GTK_RESPONSE_YES) {
+		document_save (self, FALSE, FALSE);
+	}
+	gtk_object_destroy ((GtkObject*) _data15_->infobar);
+}
+
+
+static void __lambda12__gtk_info_bar_response (GtkInfoBar* _sender, gint response_id, gpointer self) {
+	_lambda12_ (response_id, self);
+}
+
+
 void document_save (Document* self, gboolean check_file_changed_on_disk, gboolean force) {
 	gboolean _tmp0_ = FALSE;
 	gboolean _tmp1_ = FALSE;
 	GtkTextIter start = {0};
 	GtkTextIter end = {0};
-	char* text;
+	GtkTextIter _tmp3_ = {0};
+	GtkTextIter _tmp4_ = {0};
+	gchar* _tmp5_ = NULL;
+	gchar* text;
+	gint _tmp6_;
+	gchar _tmp7_;
+	GSettings* _tmp10_ = NULL;
+	GSettings* settings;
+	gboolean _tmp11_ = FALSE;
+	gboolean make_backup;
+	const gchar* _tmp13_ = NULL;
+	gchar* _tmp14_;
+	gchar* etag;
+	GFile* _tmp21_ = NULL;
+	GFile* parent;
+	gboolean _tmp22_ = FALSE;
+	gsize _tmp24_;
+	gchar* _tmp25_ = NULL;
+	GtkRecentManager* _tmp26_ = NULL;
+	gchar* _tmp27_ = NULL;
+	gchar* _tmp28_;
 	GError * _inner_error_ = NULL;
 	g_return_if_fail (self != NULL);
 	g_return_if_fail (self->priv->_location != NULL);
@@ -653,134 +741,176 @@ void document_save (Document* self, gboolean check_file_changed_on_disk, gboolea
 		_tmp1_ = FALSE;
 	}
 	if (_tmp1_) {
-		_tmp0_ = !document_get_modified (self);
+		gboolean _tmp2_;
+		_tmp2_ = document_get_modified (self);
+		_tmp0_ = !_tmp2_;
 	} else {
 		_tmp0_ = FALSE;
 	}
 	if (_tmp0_) {
 		return;
 	}
-	gtk_text_buffer_get_bounds ((GtkTextBuffer*) self, &start, &end);
-	text = gtk_text_buffer_get_text ((GtkTextBuffer*) self, &start, &end, FALSE);
-	if (g_utf8_get_char (g_utf8_offset_to_pointer (text, string_get_length (text) - 1)) != '\n') {
-		char* _tmp2_;
-		text = (_tmp2_ = g_strconcat (string_to_string (text), "\n", NULL), _g_free0 (text), _tmp2_);
+	gtk_text_buffer_get_bounds ((GtkTextBuffer*) self, &_tmp3_, &_tmp4_);
+	start = _tmp3_;
+	end = _tmp4_;
+	_tmp5_ = gtk_text_buffer_get_text ((GtkTextBuffer*) self, &start, &end, FALSE);
+	text = _tmp5_;
+	_tmp6_ = strlen (text);
+	_tmp7_ = string_get (text, (glong) (_tmp6_ - 1));
+	if (_tmp7_ != '\n') {
+		const gchar* _tmp8_ = NULL;
+		gchar* _tmp9_ = NULL;
+		_tmp8_ = string_to_string (text);
+		_tmp9_ = g_strconcat (_tmp8_, "\n", NULL);
+		_g_free0 (text);
+		text = _tmp9_;
+	}
+	_tmp10_ = g_settings_new ("org.gnome.latexila.preferences.editor");
+	settings = _tmp10_;
+	if (!self->priv->backup_made) {
+		gboolean _tmp12_;
+		_tmp12_ = g_settings_get_boolean (settings, "create-backup-copy");
+		_tmp11_ = _tmp12_;
+	} else {
+		_tmp11_ = FALSE;
 	}
-	{
-		GSettings* settings;
-		gboolean _tmp3_ = FALSE;
-		gboolean make_backup;
-		const char* _tmp4_;
-		char* etag;
-		GFile* parent;
-		gboolean _tmp9_ = FALSE;
-		char* _tmp10_ = NULL;
-		char* _tmp11_;
-		char* _tmp12_;
-		settings = g_settings_new ("org.gnome.latexila.preferences.editor");
-		if (!self->priv->backup_made) {
-			_tmp3_ = g_settings_get_boolean (settings, "create-backup-copy");
-		} else {
-			_tmp3_ = FALSE;
-		}
-		make_backup = _tmp3_;
-		_tmp4_ = NULL;
-		if (check_file_changed_on_disk) {
-			_tmp4_ = self->priv->_etag;
-		} else {
-			_tmp4_ = NULL;
-		}
-		etag = g_strdup (_tmp4_);
-		if (self->priv->encoding != NULL) {
-			char* _tmp5_;
-			char* _tmp6_;
-			_tmp5_ = g_convert (text, (gssize) strlen (text), self->priv->encoding, "UTF-8", NULL, NULL, &_inner_error_);
-			if (_inner_error_ != NULL) {
-				_g_free0 (etag);
-				_g_object_unref0 (settings);
-				goto __catch34_g_error;
-			}
-			text = (_tmp6_ = _tmp5_, _g_free0 (text), _tmp6_);
-		} else {
-			char* _tmp7_;
-			char* _tmp8_;
-			_tmp7_ = g_filename_from_utf8 (text, (gssize) strlen (text), NULL, NULL, &_inner_error_);
-			if (_inner_error_ != NULL) {
-				_g_free0 (etag);
-				_g_object_unref0 (settings);
-				goto __catch34_g_error;
-			}
-			text = (_tmp8_ = _tmp7_, _g_free0 (text), _tmp8_);
-		}
-		parent = g_file_get_parent (self->priv->_location);
-		if (parent != NULL) {
-			_tmp9_ = !g_file_query_exists (parent, NULL);
-		} else {
-			_tmp9_ = FALSE;
+	make_backup = _tmp11_;
+	if (check_file_changed_on_disk) {
+		_tmp13_ = self->priv->_etag;
+	} else {
+		_tmp13_ = NULL;
+	}
+	_tmp14_ = g_strdup (_tmp13_);
+	etag = _tmp14_;
+	if (self->priv->encoding != NULL) {
+		gsize _tmp15_;
+		gchar* _tmp16_ = NULL;
+		gchar* _tmp17_;
+		_tmp15_ = strlen (text);
+		_tmp16_ = g_convert (text, (gssize) _tmp15_, self->priv->encoding, "UTF-8", NULL, NULL, &_inner_error_);
+		_tmp17_ = _tmp16_;
+		if (_inner_error_ != NULL) {
+			_g_free0 (etag);
+			_g_object_unref0 (settings);
+			goto __catch34_g_error;
 		}
-		if (_tmp9_) {
-			g_file_make_directory_with_parents (parent, NULL, &_inner_error_);
-			if (_inner_error_ != NULL) {
-				_g_object_unref0 (parent);
-				_g_free0 (etag);
-				_g_object_unref0 (settings);
-				goto __catch34_g_error;
-			}
+		_g_free0 (text);
+		text = _tmp17_;
+	} else {
+		gsize _tmp18_;
+		gchar* _tmp19_ = NULL;
+		gchar* _tmp20_;
+		_tmp18_ = strlen (text);
+		_tmp19_ = g_filename_from_utf8 (text, (gssize) _tmp18_, NULL, NULL, &_inner_error_);
+		_tmp20_ = _tmp19_;
+		if (_inner_error_ != NULL) {
+			_g_free0 (etag);
+			_g_object_unref0 (settings);
+			goto __catch34_g_error;
 		}
-		g_file_replace_contents (self->priv->_location, text, strlen (text), etag, make_backup, G_FILE_CREATE_NONE, &_tmp10_, NULL, &_inner_error_);
-		self->priv->_etag = (_tmp11_ = _tmp10_, _g_free0 (self->priv->_etag), _tmp11_);
+		_g_free0 (text);
+		text = _tmp20_;
+	}
+	_tmp21_ = g_file_get_parent (self->priv->_location);
+	parent = _tmp21_;
+	if (parent != NULL) {
+		gboolean _tmp23_;
+		_tmp23_ = g_file_query_exists (parent, NULL);
+		_tmp22_ = !_tmp23_;
+	} else {
+		_tmp22_ = FALSE;
+	}
+	if (_tmp22_) {
+		g_file_make_directory_with_parents (parent, NULL, &_inner_error_);
 		if (_inner_error_ != NULL) {
 			_g_object_unref0 (parent);
 			_g_free0 (etag);
 			_g_object_unref0 (settings);
 			goto __catch34_g_error;
 		}
-		gtk_text_buffer_set_modified ((GtkTextBuffer*) self, FALSE);
-		gtk_recent_manager_add_item (gtk_recent_manager_get_default (), _tmp12_ = g_file_get_uri (self->priv->_location));
-		_g_free0 (_tmp12_);
-		self->priv->backup_made = TRUE;
+	}
+	_tmp24_ = strlen (text);
+	g_file_replace_contents (self->priv->_location, text, _tmp24_, etag, make_backup, G_FILE_CREATE_NONE, &_tmp25_, NULL, &_inner_error_);
+	_g_free0 (self->priv->_etag);
+	self->priv->_etag = _tmp25_;
+	if (_inner_error_ != NULL) {
 		_g_object_unref0 (parent);
 		_g_free0 (etag);
 		_g_object_unref0 (settings);
+		goto __catch34_g_error;
 	}
+	gtk_text_buffer_set_modified ((GtkTextBuffer*) self, FALSE);
+	_tmp26_ = gtk_recent_manager_get_default ();
+	_tmp27_ = g_file_get_uri (self->priv->_location);
+	_tmp28_ = _tmp27_;
+	gtk_recent_manager_add_item (_tmp26_, _tmp28_);
+	_g_free0 (_tmp28_);
+	self->priv->backup_made = TRUE;
+	_g_object_unref0 (parent);
+	_g_free0 (etag);
+	_g_object_unref0 (settings);
 	goto __finally34;
 	__catch34_g_error:
 	{
 		GError * e;
 		e = _inner_error_;
 		_inner_error_ = NULL;
-		{
-			if (g_error_matches (e, G_IO_ERROR, G_IO_ERROR_WRONG_ETAG)) {
-				Block15Data* _data15_;
-				char* _tmp13_;
-				char* _tmp14_;
-				char* primary_msg;
-				char* secondary_msg;
-				_data15_ = g_slice_new0 (Block15Data);
-				_data15_->_ref_count_ = 1;
-				_data15_->self = g_object_ref (self);
-				primary_msg = (_tmp14_ = g_strdup_printf (_ ("The file %s has been modified since reading it."), _tmp13_ = g_file_get_parse_name (self->priv->_location)), _g_free0 (_tmp13_), _tmp14_);
-				secondary_msg = g_strdup (_ ("If you save it, all the external changes could be lost. Save it anyway" \
-"?"));
-				_data15_->infobar = document_tab_add_message (self->tab, primary_msg, secondary_msg, GTK_MESSAGE_WARNING);
-				tab_info_bar_add_stock_button_with_text (_data15_->infobar, _ ("Save Anyway"), GTK_STOCK_SAVE, (gint) GTK_RESPONSE_YES);
-				gtk_info_bar_add_button ((GtkInfoBar*) _data15_->infobar, _ ("Don't Save"), (gint) GTK_RESPONSE_CANCEL);
-				g_signal_connect_data ((GtkInfoBar*) _data15_->infobar, "response", (GCallback) __lambda12__gtk_info_bar_response, block15_data_ref (_data15_), (GClosureNotify) block15_data_unref, 0);
-				_g_free0 (secondary_msg);
-				_g_free0 (primary_msg);
-				block15_data_unref (_data15_);
-			} else {
-				char* primary_msg;
-				TabInfoBar* infobar;
-				fprintf (stderr, "Error: %s\n", e->message);
-				primary_msg = g_strdup (_ ("Impossible to save the file."));
-				infobar = document_tab_add_message (self->tab, primary_msg, e->message, GTK_MESSAGE_ERROR);
-				tab_info_bar_add_ok_button (infobar);
-				_g_object_unref0 (infobar);
-				_g_free0 (primary_msg);
-			}
-			_g_error_free0 (e);
+		if (g_error_matches (e, G_IO_ERROR, G_IO_ERROR_WRONG_ETAG)) {
+			Block15Data* _data15_;
+			const gchar* _tmp29_ = NULL;
+			gchar* _tmp30_ = NULL;
+			gchar* _tmp31_;
+			gchar* _tmp32_ = NULL;
+			gchar* _tmp33_;
+			gchar* primary_msg;
+			const gchar* _tmp34_ = NULL;
+			gchar* _tmp35_;
+			gchar* secondary_msg;
+			TabInfoBar* _tmp36_ = NULL;
+			const gchar* _tmp37_ = NULL;
+			const gchar* _tmp38_ = NULL;
+			_data15_ = g_slice_new0 (Block15Data);
+			_data15_->_ref_count_ = 1;
+			_data15_->self = g_object_ref (self);
+			_tmp29_ = _ ("The file %s has been modified since reading it.");
+			_tmp30_ = g_file_get_parse_name (self->priv->_location);
+			_tmp31_ = _tmp30_;
+			_tmp32_ = g_strdup_printf (_tmp29_, _tmp31_);
+			_tmp33_ = _tmp32_;
+			_g_free0 (_tmp31_);
+			primary_msg = _tmp33_;
+			_tmp34_ = _ ("If you save it, all the external changes could be lost. Save it anyway" \
+"?");
+			_tmp35_ = g_strdup (_tmp34_);
+			secondary_msg = _tmp35_;
+			_tmp36_ = document_tab_add_message (self->tab, primary_msg, secondary_msg, GTK_MESSAGE_WARNING);
+			_data15_->infobar = _tmp36_;
+			_tmp37_ = _ ("Save Anyway");
+			tab_info_bar_add_stock_button_with_text (_data15_->infobar, _tmp37_, GTK_STOCK_SAVE, (gint) GTK_RESPONSE_YES);
+			_tmp38_ = _ ("Don't Save");
+			gtk_info_bar_add_button ((GtkInfoBar*) _data15_->infobar, _tmp38_, (gint) GTK_RESPONSE_CANCEL);
+			g_signal_connect_data ((GtkInfoBar*) _data15_->infobar, "response", (GCallback) __lambda12__gtk_info_bar_response, block15_data_ref (_data15_), (GClosureNotify) block15_data_unref, 0);
+			_g_free0 (secondary_msg);
+			_g_free0 (primary_msg);
+			block15_data_unref (_data15_);
+			_data15_ = NULL;
+		} else {
+			const gchar* _tmp39_ = NULL;
+			gchar* _tmp40_;
+			gchar* primary_msg;
+			TabInfoBar* _tmp41_ = NULL;
+			TabInfoBar* infobar;
+			fprintf (stderr, "Error: %s\n", e->message);
+			_tmp39_ = _ ("Impossible to save the file.");
+			_tmp40_ = g_strdup (_tmp39_);
+			primary_msg = _tmp40_;
+			_tmp41_ = document_tab_add_message (self->tab, primary_msg, e->message, GTK_MESSAGE_ERROR);
+			infobar = _tmp41_;
+			tab_info_bar_add_ok_button (infobar);
+			_g_object_unref0 (infobar);
+			_g_free0 (primary_msg);
 		}
+		_g_error_free0 (e);
 	}
 	__finally34:
 	if (_inner_error_ != NULL) {
@@ -793,111 +923,125 @@ void document_save (Document* self, gboolean check_file_changed_on_disk, gboolea
 }
 
 
-static char* document_to_utf8 (Document* self, const char* text, GError** error) {
-	char* result = NULL;
+static gchar* document_to_utf8 (Document* self, const gchar* text, GError** error) {
+	gchar* result = NULL;
+	const gchar* _tmp4_ = NULL;
+	GError* _tmp5_ = NULL;
 	GError * _inner_error_ = NULL;
 	g_return_val_if_fail (self != NULL, NULL);
 	g_return_val_if_fail (text != NULL, NULL);
 	{
-		const char** charset_collection;
+		const gchar** charset_collection;
 		int charset_collection_length1;
 		int charset_it;
 		charset_collection = ENCODINGS_CHARSETS;
 		charset_collection_length1 = G_N_ELEMENTS (ENCODINGS_CHARSETS);
 		for (charset_it = 0; charset_it < G_N_ELEMENTS (ENCODINGS_CHARSETS); charset_it = charset_it + 1) {
-			char* charset;
-			charset = g_strdup (charset_collection[charset_it]);
+			gchar* _tmp0_;
+			gchar* charset;
+			_tmp0_ = g_strdup (charset_collection[charset_it]);
+			charset = _tmp0_;
 			{
-				{
-					char* utf8_text;
-					char* _tmp0_;
-					utf8_text = g_convert (text, (gssize) strlen (text), "UTF-8", charset, NULL, NULL, &_inner_error_);
-					if (_inner_error_ != NULL) {
-						if (_inner_error_->domain == G_CONVERT_ERROR) {
-							goto __catch35_g_convert_error;
-						}
-						_g_free0 (charset);
-						g_critical ("file %s: line %d: unexpected error: %s (%s, %d)", __FILE__, __LINE__, _inner_error_->message, g_quark_to_string (_inner_error_->domain), _inner_error_->code);
-						g_clear_error (&_inner_error_);
-						return NULL;
+				gsize _tmp1_;
+				gchar* _tmp2_ = NULL;
+				gchar* utf8_text;
+				gchar* _tmp3_;
+				_tmp1_ = strlen (text);
+				_tmp2_ = g_convert (text, (gssize) _tmp1_, "UTF-8", charset, NULL, NULL, &_inner_error_);
+				utf8_text = _tmp2_;
+				if (_inner_error_ != NULL) {
+					if (_inner_error_->domain == G_CONVERT_ERROR) {
+						goto __catch35_g_convert_error;
 					}
-					self->priv->encoding = (_tmp0_ = g_strdup (charset), _g_free0 (self->priv->encoding), _tmp0_);
-					result = utf8_text;
 					_g_free0 (charset);
-					return result;
+					g_critical ("file %s: line %d: unexpected error: %s (%s, %d)", __FILE__, __LINE__, _inner_error_->message, g_quark_to_string (_inner_error_->domain), _inner_error_->code);
+					g_clear_error (&_inner_error_);
+					return NULL;
 				}
+				_tmp3_ = g_strdup (charset);
+				_g_free0 (self->priv->encoding);
+				self->priv->encoding = _tmp3_;
+				result = utf8_text;
+				_g_free0 (charset);
+				return result;
+				_g_free0 (utf8_text);
 				goto __finally35;
 				__catch35_g_convert_error:
 				{
 					GError * e;
 					e = _inner_error_;
 					_inner_error_ = NULL;
-					{
-						_g_error_free0 (e);
-						_g_free0 (charset);
-						continue;
-					}
+					_g_error_free0 (e);
+					_g_free0 (charset);
+					continue;
 				}
 				__finally35:
-				{
-					if (_inner_error_->domain == G_CONVERT_ERROR) {
-						g_propagate_error (error, _inner_error_);
-						_g_free0 (charset);
-						return NULL;
-					} else {
-						_g_free0 (charset);
-						g_critical ("file %s: line %d: uncaught error: %s (%s, %d)", __FILE__, __LINE__, _inner_error_->message, g_quark_to_string (_inner_error_->domain), _inner_error_->code);
-						g_clear_error (&_inner_error_);
-						return NULL;
-					}
+				if (_inner_error_->domain == G_CONVERT_ERROR) {
+					g_propagate_error (error, _inner_error_);
+					_g_free0 (charset);
+					return NULL;
+				} else {
+					_g_free0 (charset);
+					g_critical ("file %s: line %d: uncaught error: %s (%s, %d)", __FILE__, __LINE__, _inner_error_->message, g_quark_to_string (_inner_error_->domain), _inner_error_->code);
+					g_clear_error (&_inner_error_);
+					return NULL;
 				}
 				_g_free0 (charset);
 			}
 		}
 	}
-	_inner_error_ = g_error_new_literal (G_CONVERT_ERROR, G_CONVERT_ERROR_FAILED, _ ("Error trying to convert the document to UTF-8"));
-	{
-		if (_inner_error_->domain == G_CONVERT_ERROR) {
-			g_propagate_error (error, _inner_error_);
-			return NULL;
-		} else {
-			g_critical ("file %s: line %d: uncaught error: %s (%s, %d)", __FILE__, __LINE__, _inner_error_->message, g_quark_to_string (_inner_error_->domain), _inner_error_->code);
-			g_clear_error (&_inner_error_);
-			return NULL;
-		}
+	_tmp4_ = _ ("Error trying to convert the document to UTF-8");
+	_tmp5_ = g_error_new_literal (G_CONVERT_ERROR, G_CONVERT_ERROR_FAILED, _tmp4_);
+	_inner_error_ = _tmp5_;
+	if (_inner_error_->domain == G_CONVERT_ERROR) {
+		g_propagate_error (error, _inner_error_);
+		return NULL;
+	} else {
+		g_critical ("file %s: line %d: uncaught error: %s (%s, %d)", __FILE__, __LINE__, _inner_error_->message, g_quark_to_string (_inner_error_->domain), _inner_error_->code);
+		g_clear_error (&_inner_error_);
+		return NULL;
 	}
 }
 
 
 static void document_update_syntax_highlighting (Document* self) {
+	GtkSourceLanguageManager* _tmp0_ = NULL;
+	GtkSourceLanguageManager* _tmp1_;
 	GtkSourceLanguageManager* lm;
-	char* content_type;
-	char* _tmp1_;
-	GtkSourceLanguage* _tmp2_;
+	gchar* content_type;
+	GFileInfo* _tmp2_ = NULL;
+	GFileInfo* info;
+	const gchar* _tmp3_ = NULL;
+	gchar* _tmp4_;
+	gchar* _tmp5_ = NULL;
+	gchar* _tmp6_;
+	GtkSourceLanguage* _tmp7_ = NULL;
+	GtkSourceLanguage* _tmp8_;
+	GtkSourceLanguage* _tmp9_;
 	GtkSourceLanguage* lang;
 	GError * _inner_error_ = NULL;
 	g_return_if_fail (self != NULL);
-	lm = _g_object_ref0 (gtk_source_language_manager_get_default ());
+	_tmp0_ = gtk_source_language_manager_get_default ();
+	_tmp1_ = _g_object_ref0 (_tmp0_);
+	lm = _tmp1_;
 	content_type = NULL;
-	{
-		GFileInfo* info;
-		char* _tmp0_;
-		info = g_file_query_info (self->priv->_location, G_FILE_ATTRIBUTE_STANDARD_CONTENT_TYPE, G_FILE_QUERY_INFO_NONE, NULL, &_inner_error_);
-		if (_inner_error_ != NULL) {
-			goto __catch36_g_error;
-		}
-		content_type = (_tmp0_ = g_strdup (g_file_info_get_content_type (info)), _g_free0 (content_type), _tmp0_);
-		_g_object_unref0 (info);
+	_tmp2_ = g_file_query_info (self->priv->_location, G_FILE_ATTRIBUTE_STANDARD_CONTENT_TYPE, G_FILE_QUERY_INFO_NONE, NULL, &_inner_error_);
+	info = _tmp2_;
+	if (_inner_error_ != NULL) {
+		goto __catch36_g_error;
 	}
+	_tmp3_ = g_file_info_get_content_type (info);
+	_tmp4_ = g_strdup (_tmp3_);
+	_g_free0 (content_type);
+	content_type = _tmp4_;
+	_g_object_unref0 (info);
 	goto __finally36;
 	__catch36_g_error:
 	{
 		GError * e;
 		e = _inner_error_;
 		_inner_error_ = NULL;
-		{
-			_g_error_free0 (e);
-		}
+		_g_error_free0 (e);
 	}
 	__finally36:
 	if (_inner_error_ != NULL) {
@@ -907,7 +1051,13 @@ static void document_update_syntax_highlighting (Document* self) {
 		g_clear_error (&_inner_error_);
 		return;
 	}
-	lang = (_tmp2_ = _g_object_ref0 (gtk_source_language_manager_guess_language (lm, _tmp1_ = g_file_get_parse_name (self->priv->_location), content_type)), _g_free0 (_tmp1_), _tmp2_);
+	_tmp5_ = g_file_get_parse_name (self->priv->_location);
+	_tmp6_ = _tmp5_;
+	_tmp7_ = gtk_source_language_manager_guess_language (lm, _tmp6_, content_type);
+	_tmp8_ = _g_object_ref0 (_tmp7_);
+	_tmp9_ = _tmp8_;
+	_g_free0 (_tmp6_);
+	lang = _tmp9_;
 	gtk_source_buffer_set_language ((GtkSourceBuffer*) self, lang);
 	_g_object_unref0 (lang);
 	_g_free0 (content_type);
@@ -916,89 +1066,245 @@ static void document_update_syntax_highlighting (Document* self) {
 
 
 static void document_update_project_id (Document* self) {
-	Projects* _tmp0_;
-	GeeLinkedList* _tmp1_;
+	Projects* _tmp0_ = NULL;
+	Projects* _tmp1_;
+	GeeLinkedList* _tmp2_ = NULL;
+	GeeLinkedList* _tmp3_;
 	GeeLinkedList* projects;
 	g_return_if_fail (self != NULL);
-	projects = (_tmp1_ = projects_get_projects (_tmp0_ = projects_get_default ()), _projects_unref0 (_tmp0_), _tmp1_);
+	_tmp0_ = projects_get_default ();
+	_tmp1_ = _tmp0_;
+	_tmp2_ = projects_get_projects (_tmp1_);
+	_tmp3_ = _tmp2_;
+	_projects_unref0 (_tmp1_);
+	projects = _tmp3_;
 	{
 		gint i;
 		i = 0;
 		{
-			gboolean _tmp2_;
-			_tmp2_ = TRUE;
+			gboolean _tmp4_;
+			_tmp4_ = TRUE;
 			while (TRUE) {
-				Project* _tmp3_;
-				gboolean _tmp4_;
-				if (!_tmp2_) {
+				gint _tmp5_;
+				gpointer _tmp6_ = NULL;
+				Project* _tmp7_;
+				gboolean _tmp8_;
+				gboolean _tmp9_;
+				if (!_tmp4_) {
 					i++;
 				}
-				_tmp2_ = FALSE;
-				if (!(i < gee_collection_get_size ((GeeCollection*) projects))) {
+				_tmp4_ = FALSE;
+				_tmp5_ = gee_collection_get_size ((GeeCollection*) projects);
+				if (!(i < _tmp5_)) {
 					break;
 				}
-				if ((_tmp4_ = g_file_has_prefix (self->priv->_location, (*(_tmp3_ = (Project*) gee_abstract_list_get ((GeeAbstractList*) projects, i))).directory), _project_free0 (_tmp3_), _tmp4_)) {
+				_tmp6_ = gee_abstract_list_get ((GeeAbstractList*) projects, i);
+				_tmp7_ = (Project*) _tmp6_;
+				_tmp8_ = g_file_has_prefix (self->priv->_location, (*_tmp7_).directory);
+				_tmp9_ = _tmp8_;
+				_project_free0 (_tmp7_);
+				if (_tmp9_) {
 					document_set_project_id (self, i);
 					return;
 				}
 			}
 		}
 	}
+	document_set_project_id (self, -1);
 }
 
 
-char* document_get_uri_for_display (Document* self) {
-	char* result = NULL;
-	char* _tmp0_;
-	char* _tmp1_;
+gchar* document_get_uri_for_display (Document* self) {
+	gchar* result = NULL;
+	gchar* _tmp1_ = NULL;
+	gchar* _tmp2_;
+	gchar* _tmp3_ = NULL;
+	gchar* _tmp4_;
 	g_return_val_if_fail (self != NULL, NULL);
 	if (self->priv->_location == NULL) {
-		result = document_get_unsaved_document_name (self);
+		gchar* _tmp0_ = NULL;
+		_tmp0_ = document_get_unsaved_document_name (self);
+		result = _tmp0_;
 		return result;
 	}
-	result = (_tmp1_ = utils_replace_home_dir_with_tilde (_tmp0_ = g_file_get_parse_name (self->priv->_location)), _g_free0 (_tmp0_), _tmp1_);
+	_tmp1_ = g_file_get_parse_name (self->priv->_location);
+	_tmp2_ = _tmp1_;
+	_tmp3_ = utils_replace_home_dir_with_tilde (_tmp2_);
+	_tmp4_ = _tmp3_;
+	_g_free0 (_tmp2_);
+	result = _tmp4_;
 	return result;
 }
 
 
-char* document_get_short_name_for_display (Document* self) {
-	char* result = NULL;
+gchar* document_get_short_name_for_display (Document* self) {
+	gchar* result = NULL;
+	gchar* _tmp1_ = NULL;
 	g_return_val_if_fail (self != NULL, NULL);
 	if (self->priv->_location == NULL) {
-		result = document_get_unsaved_document_name (self);
+		gchar* _tmp0_ = NULL;
+		_tmp0_ = document_get_unsaved_document_name (self);
+		result = _tmp0_;
 		return result;
 	}
-	result = g_file_get_basename (self->priv->_location);
+	_tmp1_ = g_file_get_basename (self->priv->_location);
+	result = _tmp1_;
 	return result;
 }
 
 
-static char* document_get_unsaved_document_name (Document* self) {
-	char* result = NULL;
-	char* _tmp0_;
-	char* _tmp1_;
+static gchar* document_get_unsaved_document_name (Document* self) {
+	gchar* result = NULL;
+	guint _tmp0_;
+	guint num;
+	const gchar* _tmp1_ = NULL;
+	gchar* _tmp2_ = NULL;
+	gchar* _tmp3_;
+	gchar* _tmp4_ = NULL;
+	gchar* _tmp5_;
+	gchar* _tmp6_;
+	gchar* _tmp7_;
 	g_return_val_if_fail (self != NULL, NULL);
-	result = (_tmp1_ = g_strconcat (_ ("Unsaved Document"), _tmp0_ = g_strdup_printf (" %u", self->priv->_unsaved_document_n), NULL), _g_free0 (_tmp0_), _tmp1_);
+	_tmp0_ = document_get_unsaved_document_num (self);
+	num = _tmp0_;
+	_tmp1_ = _ ("Unsaved Document");
+	_tmp2_ = g_strdup_printf ("%u", num);
+	_tmp3_ = _tmp2_;
+	_tmp4_ = g_strconcat (" ", _tmp3_, NULL);
+	_tmp5_ = _tmp4_;
+	_tmp6_ = g_strconcat (_tmp1_, _tmp5_, NULL);
+	_tmp7_ = _tmp6_;
+	_g_free0 (_tmp5_);
+	_g_free0 (_tmp3_);
+	result = _tmp7_;
+	return result;
+}
+
+
+static void _vala_array_add15 (guint** array, int* length, int* size, guint value) {
+	if ((*length) == (*size)) {
+		*size = (*size) ? (2 * (*size)) : 4;
+		*array = g_renew (guint, *array, *size);
+	}
+	(*array)[(*length)++] = value;
+}
+
+
+static void _g_object_unref0_ (gpointer var) {
+	(var == NULL) ? NULL : (var = (g_object_unref (var), NULL));
+}
+
+
+static void _g_list_free__g_object_unref0_ (GList* self) {
+	g_list_foreach (self, (GFunc) _g_object_unref0_, NULL);
+	g_list_free (self);
+}
+
+
+static gboolean _vala_uint_array_contains (guint* stack, int stack_length, guint needle) {
+	int i;
+	for (i = 0; i < stack_length; i++) {
+		if (needle == stack[i]) {
+			return TRUE;
+		}
+	}
+	return FALSE;
+}
+
+
+static guint document_get_unsaved_document_num (Document* self) {
+	guint result = 0U;
+	guint* _tmp0_ = NULL;
+	guint* all_nums;
+	gint all_nums_length1;
+	gint _all_nums_size_;
+	Application* _tmp1_ = NULL;
+	Application* _tmp2_;
+	GList* _tmp3_ = NULL;
+	GList* _tmp4_;
+	guint num = 0U;
+	g_return_val_if_fail (self != NULL, 0U);
+	g_return_val_if_fail (self->priv->_location == NULL, 0);
+	if (self->_unsaved_doc_num > 0) {
+		result = self->_unsaved_doc_num;
+		return result;
+	}
+	_tmp0_ = g_new0 (guint, 0);
+	all_nums = _tmp0_;
+	all_nums_length1 = 0;
+	_all_nums_size_ = 0;
+	_tmp1_ = application_get_default ();
+	_tmp2_ = _tmp1_;
+	_tmp3_ = application_get_documents (_tmp2_);
+	_tmp4_ = _tmp3_;
+	_g_object_unref0 (_tmp2_);
+	{
+		GList* doc_collection;
+		GList* doc_it;
+		doc_collection = _tmp4_;
+		for (doc_it = doc_collection; doc_it != NULL; doc_it = doc_it->next) {
+			Document* _tmp5_;
+			Document* doc;
+			_tmp5_ = _g_object_ref0 ((Document*) doc_it->data);
+			doc = _tmp5_;
+			{
+				if (doc == self) {
+					_g_object_unref0 (doc);
+					continue;
+				}
+				if (doc->priv->_location == NULL) {
+					guint _tmp6_;
+					_tmp6_ = document_get_unsaved_document_num (doc);
+					_vala_array_add15 (&all_nums, &all_nums_length1, &_all_nums_size_, _tmp6_);
+				}
+				_g_object_unref0 (doc);
+			}
+		}
+		__g_list_free__g_object_unref0_0 (doc_collection);
+	}
+	{
+		gboolean _tmp7_;
+		num = (guint) 1;
+		_tmp7_ = TRUE;
+		while (TRUE) {
+			if (!_tmp7_) {
+				num++;
+			}
+			_tmp7_ = FALSE;
+			if (!_vala_uint_array_contains (all_nums, all_nums_length1, num)) {
+				break;
+			}
+		}
+	}
+	self->_unsaved_doc_num = num;
+	result = num;
+	all_nums = (g_free (all_nums), NULL);
 	return result;
 }
 
 
 gboolean document_is_local (Document* self) {
 	gboolean result = FALSE;
+	gboolean _tmp0_;
 	g_return_val_if_fail (self != NULL, FALSE);
 	if (self->priv->_location == NULL) {
 		result = FALSE;
 		return result;
 	}
-	result = g_file_has_uri_scheme (self->priv->_location, "file");
+	_tmp0_ = g_file_has_uri_scheme (self->priv->_location, "file");
+	result = _tmp0_;
 	return result;
 }
 
 
 gboolean document_is_externally_modified (Document* self) {
 	gboolean result = FALSE;
-	char* current_etag;
-	gboolean _tmp1_ = FALSE;
+	gchar* current_etag;
+	GFileInfo* _tmp0_ = NULL;
+	GFileInfo* file_info;
+	const gchar* _tmp1_ = NULL;
+	gchar* _tmp2_;
+	gboolean _tmp3_ = FALSE;
 	GError * _inner_error_ = NULL;
 	g_return_val_if_fail (self != NULL, FALSE);
 	if (self->priv->_location == NULL) {
@@ -1006,28 +1312,26 @@ gboolean document_is_externally_modified (Document* self) {
 		return result;
 	}
 	current_etag = NULL;
-	{
-		GFileInfo* file_info;
-		char* _tmp0_;
-		file_info = g_file_query_info (self->priv->_location, G_FILE_ATTRIBUTE_ETAG_VALUE, G_FILE_QUERY_INFO_NONE, NULL, &_inner_error_);
-		if (_inner_error_ != NULL) {
-			goto __catch37_g_error;
-		}
-		current_etag = (_tmp0_ = g_strdup (g_file_info_get_etag (file_info)), _g_free0 (current_etag), _tmp0_);
-		_g_object_unref0 (file_info);
+	_tmp0_ = g_file_query_info (self->priv->_location, G_FILE_ATTRIBUTE_ETAG_VALUE, G_FILE_QUERY_INFO_NONE, NULL, &_inner_error_);
+	file_info = _tmp0_;
+	if (_inner_error_ != NULL) {
+		goto __catch37_g_error;
 	}
+	_tmp1_ = g_file_info_get_etag (file_info);
+	_tmp2_ = g_strdup (_tmp1_);
+	_g_free0 (current_etag);
+	current_etag = _tmp2_;
+	_g_object_unref0 (file_info);
 	goto __finally37;
 	__catch37_g_error:
 	{
 		GError * e;
 		e = _inner_error_;
 		_inner_error_ = NULL;
-		{
-			result = FALSE;
-			_g_error_free0 (e);
-			_g_free0 (current_etag);
-			return result;
-		}
+		result = FALSE;
+		_g_error_free0 (e);
+		_g_free0 (current_etag);
+		return result;
 	}
 	__finally37:
 	if (_inner_error_ != NULL) {
@@ -1037,22 +1341,28 @@ gboolean document_is_externally_modified (Document* self) {
 		return FALSE;
 	}
 	if (current_etag != NULL) {
-		_tmp1_ = _vala_strcmp0 (current_etag, self->priv->_etag) != 0;
+		_tmp3_ = g_strcmp0 (current_etag, self->priv->_etag) != 0;
 	} else {
-		_tmp1_ = FALSE;
+		_tmp3_ = FALSE;
 	}
-	result = _tmp1_;
+	result = _tmp3_;
 	_g_free0 (current_etag);
 	return result;
 }
 
 
-void document_set_style_scheme_from_string (Document* self, const char* scheme_id) {
+void document_set_style_scheme_from_string (Document* self, const gchar* scheme_id) {
+	GtkSourceStyleSchemeManager* _tmp0_ = NULL;
+	GtkSourceStyleSchemeManager* _tmp1_;
 	GtkSourceStyleSchemeManager* manager;
+	GtkSourceStyleScheme* _tmp2_ = NULL;
 	g_return_if_fail (self != NULL);
 	g_return_if_fail (scheme_id != NULL);
-	manager = _g_object_ref0 (gtk_source_style_scheme_manager_get_default ());
-	gtk_source_buffer_set_style_scheme ((GtkSourceBuffer*) self, gtk_source_style_scheme_manager_get_scheme (manager, scheme_id));
+	_tmp0_ = gtk_source_style_scheme_manager_get_default ();
+	_tmp1_ = _g_object_ref0 (_tmp0_);
+	manager = _tmp1_;
+	_tmp2_ = gtk_source_style_scheme_manager_get_scheme (manager, scheme_id);
+	gtk_source_buffer_set_style_scheme ((GtkSourceBuffer*) self, _tmp2_);
 	_g_object_unref0 (manager);
 }
 
@@ -1065,33 +1375,43 @@ static void document_emit_cursor_moved (Document* self) {
 }
 
 
-static void document_insert_text_at_beginning_of_selected_lines (Document* self, const char* text) {
+static void document_insert_text_at_beginning_of_selected_lines (Document* self, const gchar* text) {
 	GtkTextIter start = {0};
 	GtkTextIter end = {0};
+	GtkTextIter _tmp0_ = {0};
+	GtkTextIter _tmp1_ = {0};
+	gint _tmp2_;
 	gint start_line;
+	gint _tmp3_;
 	gint end_line;
 	g_return_if_fail (self != NULL);
 	g_return_if_fail (text != NULL);
-	gtk_text_buffer_get_selection_bounds ((GtkTextBuffer*) self, &start, &end);
-	start_line = gtk_text_iter_get_line (&start);
-	end_line = gtk_text_iter_get_line (&end);
+	gtk_text_buffer_get_selection_bounds ((GtkTextBuffer*) self, &_tmp0_, &_tmp1_);
+	start = _tmp0_;
+	end = _tmp1_;
+	_tmp2_ = gtk_text_iter_get_line (&start);
+	start_line = _tmp2_;
+	_tmp3_ = gtk_text_iter_get_line (&end);
+	end_line = _tmp3_;
 	gtk_text_buffer_begin_user_action ((GtkTextBuffer*) self);
 	{
 		gint i;
 		i = start_line;
 		{
-			gboolean _tmp0_;
-			_tmp0_ = TRUE;
+			gboolean _tmp4_;
+			_tmp4_ = TRUE;
 			while (TRUE) {
 				GtkTextIter iter = {0};
-				if (!_tmp0_) {
+				GtkTextIter _tmp5_ = {0};
+				if (!_tmp4_) {
 					i++;
 				}
-				_tmp0_ = FALSE;
+				_tmp4_ = FALSE;
 				if (!(i <= end_line)) {
 					break;
 				}
-				gtk_text_buffer_get_iter_at_line ((GtkTextBuffer*) self, &iter, i);
+				gtk_text_buffer_get_iter_at_line ((GtkTextBuffer*) self, &_tmp5_, i);
+				iter = _tmp5_;
 				document_insert (self, &iter, text, -1);
 			}
 		}
@@ -1109,62 +1429,92 @@ void document_comment_selected_lines (Document* self) {
 void document_uncomment_selected_lines (Document* self) {
 	GtkTextIter start = {0};
 	GtkTextIter end = {0};
+	GtkTextIter _tmp0_ = {0};
+	GtkTextIter _tmp1_ = {0};
+	gint _tmp2_;
 	gint start_line;
+	gint _tmp3_;
 	gint end_line;
+	gint _tmp4_;
 	gint line_count;
 	g_return_if_fail (self != NULL);
-	gtk_text_buffer_get_selection_bounds ((GtkTextBuffer*) self, &start, &end);
-	start_line = gtk_text_iter_get_line (&start);
-	end_line = gtk_text_iter_get_line (&end);
-	line_count = gtk_text_buffer_get_line_count ((GtkTextBuffer*) self);
+	gtk_text_buffer_get_selection_bounds ((GtkTextBuffer*) self, &_tmp0_, &_tmp1_);
+	start = _tmp0_;
+	end = _tmp1_;
+	_tmp2_ = gtk_text_iter_get_line (&start);
+	start_line = _tmp2_;
+	_tmp3_ = gtk_text_iter_get_line (&end);
+	end_line = _tmp3_;
+	_tmp4_ = gtk_text_buffer_get_line_count ((GtkTextBuffer*) self);
+	line_count = _tmp4_;
 	gtk_text_buffer_begin_user_action ((GtkTextBuffer*) self);
 	{
 		gint i;
 		i = start_line;
 		{
-			gboolean _tmp0_;
-			_tmp0_ = TRUE;
+			gboolean _tmp5_;
+			_tmp5_ = TRUE;
 			while (TRUE) {
-				char* line;
+				GtkTextIter _tmp6_ = {0};
+				gchar* _tmp9_ = NULL;
+				gchar* line;
 				gint j;
 				gint start_delete;
 				gint stop_delete;
-				if (!_tmp0_) {
+				GtkTextIter _tmp16_ = {0};
+				GtkTextIter _tmp17_ = {0};
+				if (!_tmp5_) {
 					i++;
 				}
-				_tmp0_ = FALSE;
+				_tmp5_ = FALSE;
 				if (!(i <= end_line)) {
 					break;
 				}
-				gtk_text_buffer_get_iter_at_line ((GtkTextBuffer*) self, &start, i);
+				gtk_text_buffer_get_iter_at_line ((GtkTextBuffer*) self, &_tmp6_, i);
+				start = _tmp6_;
 				if (i == (line_count - 1)) {
-					gtk_text_buffer_get_end_iter ((GtkTextBuffer*) self, &end);
+					GtkTextIter _tmp7_ = {0};
+					gtk_text_buffer_get_end_iter ((GtkTextBuffer*) self, &_tmp7_);
+					end = _tmp7_;
 				} else {
-					gtk_text_buffer_get_iter_at_line ((GtkTextBuffer*) self, &end, i + 1);
+					GtkTextIter _tmp8_ = {0};
+					gtk_text_buffer_get_iter_at_line ((GtkTextBuffer*) self, &_tmp8_, i + 1);
+					end = _tmp8_;
 				}
-				line = gtk_text_buffer_get_text ((GtkTextBuffer*) self, &start, &end, FALSE);
+				_tmp9_ = gtk_text_buffer_get_text ((GtkTextBuffer*) self, &start, &end, FALSE);
+				line = _tmp9_;
 				j = 0;
 				start_delete = -1;
 				stop_delete = -1;
 				while (TRUE) {
-					if (!(g_utf8_get_char (g_utf8_offset_to_pointer (line, j)) != '\0')) {
+					gchar _tmp10_;
+					gchar _tmp11_;
+					_tmp10_ = string_get (line, (glong) j);
+					if (!(_tmp10_ != '\0')) {
 						break;
 					}
-					if (g_utf8_get_char (g_utf8_offset_to_pointer (line, j)) == '%') {
+					_tmp11_ = string_get (line, (glong) j);
+					if (_tmp11_ == '%') {
+						gchar _tmp12_;
 						start_delete = j;
 						stop_delete = j + 1;
-						if (g_utf8_get_char (g_utf8_offset_to_pointer (line, j + 1)) == ' ') {
+						_tmp12_ = string_get (line, (glong) (j + 1));
+						if (_tmp12_ == ' ') {
 							stop_delete++;
 						}
 						break;
 					} else {
-						gboolean _tmp1_ = FALSE;
-						if (g_utf8_get_char (g_utf8_offset_to_pointer (line, j)) != ' ') {
-							_tmp1_ = g_utf8_get_char (g_utf8_offset_to_pointer (line, j)) != '\t';
+						gboolean _tmp13_ = FALSE;
+						gchar _tmp14_;
+						_tmp14_ = string_get (line, (glong) j);
+						if (_tmp14_ != ' ') {
+							gchar _tmp15_;
+							_tmp15_ = string_get (line, (glong) j);
+							_tmp13_ = _tmp15_ != '\t';
 						} else {
-							_tmp1_ = FALSE;
+							_tmp13_ = FALSE;
 						}
-						if (_tmp1_) {
+						if (_tmp13_) {
 							break;
 						}
 					}
@@ -1174,8 +1524,10 @@ void document_uncomment_selected_lines (Document* self) {
 					_g_free0 (line);
 					continue;
 				}
-				gtk_text_buffer_get_iter_at_line_offset ((GtkTextBuffer*) self, &start, i, start_delete);
-				gtk_text_buffer_get_iter_at_line_offset ((GtkTextBuffer*) self, &end, i, stop_delete);
+				gtk_text_buffer_get_iter_at_line_offset ((GtkTextBuffer*) self, &_tmp16_, i, start_delete);
+				start = _tmp16_;
+				gtk_text_buffer_get_iter_at_line_offset ((GtkTextBuffer*) self, &_tmp17_, i, stop_delete);
+				end = _tmp17_;
 				gtk_text_buffer_delete ((GtkTextBuffer*) self, &start, &end);
 				_g_free0 (line);
 			}
@@ -1188,25 +1540,41 @@ void document_uncomment_selected_lines (Document* self) {
 void document_select_lines (Document* self, gint start, gint end) {
 	GtkTextIter start_iter = {0};
 	GtkTextIter end_iter = {0};
+	GtkTextIter _tmp0_ = {0};
+	GtkTextIter _tmp1_ = {0};
+	DocumentView* _tmp2_ = NULL;
 	g_return_if_fail (self != NULL);
-	gtk_text_buffer_get_iter_at_line ((GtkTextBuffer*) self, &start_iter, start);
-	gtk_text_buffer_get_iter_at_line ((GtkTextBuffer*) self, &end_iter, end);
+	gtk_text_buffer_get_iter_at_line ((GtkTextBuffer*) self, &_tmp0_, start);
+	start_iter = _tmp0_;
+	gtk_text_buffer_get_iter_at_line ((GtkTextBuffer*) self, &_tmp1_, end);
+	end_iter = _tmp1_;
 	gtk_text_buffer_select_range ((GtkTextBuffer*) self, &start_iter, &end_iter);
-	document_view_scroll_to_cursor (document_tab_get_view (self->tab), 0.25);
+	_tmp2_ = document_tab_get_view (self->tab);
+	document_view_scroll_to_cursor (_tmp2_, 0.25);
 }
 
 
 SelectionType document_get_selection_type (Document* self) {
 	SelectionType result = 0;
+	gboolean _tmp0_;
 	GtkTextIter start = {0};
 	GtkTextIter end = {0};
+	GtkTextIter _tmp1_ = {0};
+	GtkTextIter _tmp2_ = {0};
+	gint _tmp3_;
+	gint _tmp4_;
 	g_return_val_if_fail (self != NULL, 0);
-	if (!gtk_text_buffer_get_has_selection ((GtkTextBuffer*) self)) {
+	_tmp0_ = gtk_text_buffer_get_has_selection ((GtkTextBuffer*) self);
+	if (!_tmp0_) {
 		result = SELECTION_TYPE_NO_SELECTION;
 		return result;
 	}
-	gtk_text_buffer_get_selection_bounds ((GtkTextBuffer*) self, &start, &end);
-	if (gtk_text_iter_get_line (&start) == gtk_text_iter_get_line (&end)) {
+	gtk_text_buffer_get_selection_bounds ((GtkTextBuffer*) self, &_tmp1_, &_tmp2_);
+	start = _tmp1_;
+	end = _tmp2_;
+	_tmp3_ = gtk_text_iter_get_line (&start);
+	_tmp4_ = gtk_text_iter_get_line (&end);
+	if (_tmp3_ == _tmp4_) {
 		result = SELECTION_TYPE_ONE_LINE;
 		return result;
 	}
@@ -1215,25 +1583,10 @@ SelectionType document_get_selection_type (Document* self) {
 }
 
 
-gboolean document_is_tex_document (Document* self) {
-	gboolean result = FALSE;
-	char* path;
-	g_return_val_if_fail (self != NULL, FALSE);
-	if (self->priv->_location == NULL) {
-		result = FALSE;
-		return result;
-	}
-	path = g_file_get_parse_name (self->priv->_location);
-	result = g_str_has_suffix (path, ".tex");
-	_g_free0 (path);
-	return result;
-}
-
-
-static void _vala_array_add16 (char*** array, int* length, int* size, char* value) {
+static void _vala_array_add16 (gchar*** array, int* length, int* size, gchar* value) {
 	if ((*length) == (*size)) {
 		*size = (*size) ? (2 * (*size)) : 4;
-		*array = g_renew (char*, *array, (*size) + 1);
+		*array = g_renew (gchar*, *array, (*size) + 1);
 	}
 	(*array)[(*length)++] = value;
 	(*array)[*length] = NULL;
@@ -1242,66 +1595,94 @@ static void _vala_array_add16 (char*** array, int* length, int* size, char* valu
 
 gboolean document_clean_build_files (Document* self, MainWindow* window) {
 	gboolean result = FALSE;
-	gboolean _tmp0_ = FALSE;
+	gboolean _tmp0_;
 	gboolean ret;
+	GSettings* _tmp1_ = NULL;
 	GSettings* settings;
-	char* exts;
+	gchar* _tmp2_ = NULL;
+	gchar* exts;
+	gchar** _tmp3_;
+	gchar** _tmp4_ = NULL;
+	gchar** extensions;
 	gint extensions_length1;
 	gint _extensions_size_;
-	char** _tmp2_;
-	char** _tmp1_;
-	char** extensions;
+	gboolean _tmp5_;
 	gboolean no_confirm;
+	GFile* _tmp6_ = NULL;
 	GFile* mainfile;
+	GFile* _tmp7_ = NULL;
 	GFile* directory;
-	char* _tmp3_;
-	char* _tmp4_;
-	char* shortname;
+	gchar* _tmp8_ = NULL;
+	gchar* _tmp9_;
+	gchar* _tmp10_ = NULL;
+	gchar* _tmp11_;
+	gchar* shortname;
+	gchar** _tmp12_ = NULL;
+	gchar** basenames;
 	gint basenames_length1;
 	gint _basenames_size_;
-	char** _tmp6_;
-	char** _tmp5_ = NULL;
-	char** basenames;
 	g_return_val_if_fail (self != NULL, FALSE);
 	g_return_val_if_fail (window != NULL, FALSE);
-	if (self->priv->_location == NULL) {
-		_tmp0_ = TRUE;
-	} else {
-		_tmp0_ = !document_is_tex_document (self);
-	}
-	if (_tmp0_) {
+	_tmp0_ = document_is_main_file_a_tex_file (self);
+	if (!_tmp0_) {
 		result = FALSE;
 		return result;
 	}
 	ret = FALSE;
-	settings = g_settings_new ("org.gnome.latexila.preferences.latex");
-	exts = g_settings_get_string (settings, "clean-extensions");
-	extensions = (_tmp2_ = _tmp1_ = g_strsplit (exts, " ", 0), extensions_length1 = _vala_array_length (_tmp1_), _extensions_size_ = extensions_length1, _tmp2_);
-	no_confirm = g_settings_get_boolean (settings, "no-confirm-clean");
-	mainfile = document_get_main_file (self);
-	directory = g_file_get_parent (mainfile);
-	shortname = (_tmp4_ = utils_get_shortname (_tmp3_ = g_file_get_basename (mainfile)), _g_free0 (_tmp3_), _tmp4_);
-	basenames = (_tmp6_ = (_tmp5_ = g_new0 (char*, 0 + 1), _tmp5_), basenames_length1 = 0, _basenames_size_ = basenames_length1, _tmp6_);
+	_tmp1_ = g_settings_new ("org.gnome.latexila.preferences.latex");
+	settings = _tmp1_;
+	_tmp2_ = g_settings_get_string (settings, "clean-extensions");
+	exts = _tmp2_;
+	_tmp4_ = _tmp3_ = g_strsplit (exts, " ", 0);
+	extensions = _tmp4_;
+	extensions_length1 = _vala_array_length (_tmp3_);
+	_extensions_size_ = _vala_array_length (_tmp3_);
+	_tmp5_ = g_settings_get_boolean (settings, "no-confirm-clean");
+	no_confirm = _tmp5_;
+	_tmp6_ = document_get_main_file (self);
+	mainfile = _tmp6_;
+	_tmp7_ = g_file_get_parent (mainfile);
+	directory = _tmp7_;
+	_tmp8_ = g_file_get_basename (mainfile);
+	_tmp9_ = _tmp8_;
+	_tmp10_ = utils_get_shortname (_tmp9_);
+	_tmp11_ = _tmp10_;
+	_g_free0 (_tmp9_);
+	shortname = _tmp11_;
+	_tmp12_ = g_new0 (gchar*, 0 + 1);
+	basenames = _tmp12_;
+	basenames_length1 = 0;
+	_basenames_size_ = 0;
 	{
-		char** extension_collection;
+		gchar** extension_collection;
 		int extension_collection_length1;
 		int extension_it;
 		extension_collection = extensions;
 		extension_collection_length1 = extensions_length1;
 		for (extension_it = 0; extension_it < extensions_length1; extension_it = extension_it + 1) {
-			char* extension;
-			extension = g_strdup (extension_collection[extension_it]);
+			gchar* _tmp13_;
+			gchar* extension;
+			_tmp13_ = g_strdup (extension_collection[extension_it]);
+			extension = _tmp13_;
 			{
-				char* basename;
+				gchar* _tmp14_;
+				gchar* basename;
+				GFile* _tmp15_ = NULL;
 				GFile* file;
-				basename = g_strconcat (shortname, extension, NULL);
-				file = g_file_get_child (directory, basename);
-				if (g_file_query_exists (file, NULL)) {
+				gboolean _tmp16_;
+				_tmp14_ = g_strconcat (shortname, extension, NULL);
+				basename = _tmp14_;
+				_tmp15_ = g_file_get_child (directory, basename);
+				file = _tmp15_;
+				_tmp16_ = g_file_query_exists (file, NULL);
+				if (_tmp16_) {
 					ret = TRUE;
 					if (no_confirm) {
 						utils_delete_file (file);
 					} else {
-						_vala_array_add16 (&basenames, &basenames_length1, &_basenames_size_, g_strdup (basename));
+						gchar* _tmp17_;
+						_tmp17_ = g_strdup (basename);
+						_vala_array_add16 (&basenames, &basenames_length1, &_basenames_size_, _tmp17_);
 					}
 				}
 				_g_object_unref0 (file);
@@ -1322,7 +1703,9 @@ gboolean document_clean_build_files (Document* self, MainWindow* window) {
 		return result;
 	} else {
 		if (basenames_length1 > 0) {
-			result = dialogs_confirm_clean_build_files (window, directory, basenames, basenames_length1);
+			gboolean _tmp18_;
+			_tmp18_ = dialogs_confirm_clean_build_files (window, directory, basenames, basenames_length1);
+			result = _tmp18_;
 			basenames = (_vala_array_free (basenames, basenames_length1, (GDestroyNotify) g_free), NULL);
 			_g_free0 (shortname);
 			_g_object_unref0 (directory);
@@ -1349,14 +1732,20 @@ gboolean document_goto_line (Document* self, gint line) {
 	gboolean result = FALSE;
 	gboolean ret;
 	GtkTextIter iter = {0};
+	gint _tmp0_;
 	g_return_val_if_fail (self != NULL, FALSE);
 	g_return_val_if_fail (line >= (-1), FALSE);
 	ret = TRUE;
-	if (line >= gtk_text_buffer_get_line_count ((GtkTextBuffer*) self)) {
+	_tmp0_ = gtk_text_buffer_get_line_count ((GtkTextBuffer*) self);
+	if (line >= _tmp0_) {
+		GtkTextIter _tmp1_ = {0};
 		ret = FALSE;
-		gtk_text_buffer_get_end_iter ((GtkTextBuffer*) self, &iter);
+		gtk_text_buffer_get_end_iter ((GtkTextBuffer*) self, &_tmp1_);
+		iter = _tmp1_;
 	} else {
-		gtk_text_buffer_get_iter_at_line ((GtkTextBuffer*) self, &iter, line);
+		GtkTextIter _tmp2_ = {0};
+		gtk_text_buffer_get_iter_at_line ((GtkTextBuffer*) self, &_tmp2_, line);
+		iter = _tmp2_;
 	}
 	gtk_text_buffer_place_cursor ((GtkTextBuffer*) self, &iter);
 	result = ret;
@@ -1366,76 +1755,125 @@ gboolean document_goto_line (Document* self, gint line) {
 
 GFile* document_get_main_file (Document* self) {
 	GFile* result = NULL;
-	Projects* _tmp0_;
-	Project* _tmp1_;
+	Projects* _tmp1_ = NULL;
+	Projects* _tmp2_;
+	Project* _tmp3_ = NULL;
+	Project* _tmp4_;
 	Project* project;
+	GFile* _tmp6_;
 	g_return_val_if_fail (self != NULL, NULL);
 	if (self->priv->_location == NULL) {
 		result = NULL;
 		return result;
 	}
 	if (self->priv->_project_id == (-1)) {
-		result = _g_object_ref0 (self->priv->_location);
+		GFile* _tmp0_;
+		_tmp0_ = _g_object_ref0 (self->priv->_location);
+		result = _tmp0_;
 		return result;
 	}
-	project = (_tmp1_ = projects_get (_tmp0_ = projects_get_default (), self->priv->_project_id), _projects_unref0 (_tmp0_), _tmp1_);
+	_tmp1_ = projects_get_default ();
+	_tmp2_ = _tmp1_;
+	_tmp3_ = projects_get (_tmp2_, self->priv->_project_id);
+	_tmp4_ = _tmp3_;
+	_projects_unref0 (_tmp2_);
+	project = _tmp4_;
 	if (project == NULL) {
-		result = _g_object_ref0 (self->priv->_location);
+		GFile* _tmp5_;
+		_tmp5_ = _g_object_ref0 (self->priv->_location);
+		result = _tmp5_;
 		_project_free0 (project);
 		return result;
 	}
-	result = _g_object_ref0 ((*project).main_file);
+	_tmp6_ = _g_object_ref0 ((*project).main_file);
+	result = _tmp6_;
 	_project_free0 (project);
 	return result;
 }
 
 
-static char* g_unichar_to_string (gunichar self) {
-	char* result = NULL;
-	char* str;
-	str = (char*) g_new0 (gchar, 7);
-	g_unichar_to_utf8 (self, str);
-	result = str;
+gboolean document_is_main_file_a_tex_file (Document* self) {
+	gboolean result = FALSE;
+	GFile* _tmp0_ = NULL;
+	GFile* main_file;
+	gchar* _tmp1_ = NULL;
+	gchar* path;
+	gboolean _tmp2_;
+	g_return_val_if_fail (self != NULL, FALSE);
+	_tmp0_ = document_get_main_file (self);
+	main_file = _tmp0_;
+	if (main_file == NULL) {
+		result = FALSE;
+		_g_object_unref0 (main_file);
+		return result;
+	}
+	_tmp1_ = g_file_get_parse_name (main_file);
+	path = _tmp1_;
+	_tmp2_ = g_str_has_suffix (path, ".tex");
+	result = _tmp2_;
+	_g_free0 (path);
+	_g_object_unref0 (main_file);
 	return result;
 }
 
 
-char* document_get_current_indentation (Document* self, gint line) {
-	char* result = NULL;
+gchar* document_get_current_indentation (Document* self, gint line) {
+	gchar* result = NULL;
 	GtkTextIter start_iter = {0};
 	GtkTextIter end_iter = {0};
-	char* text;
-	char* current_indent;
+	GtkTextIter _tmp0_ = {0};
+	GtkTextIter _tmp1_ = {0};
+	gchar* _tmp2_ = NULL;
+	gchar* text;
+	gchar* _tmp3_;
+	gchar* current_indent;
 	g_return_val_if_fail (self != NULL, NULL);
-	gtk_text_buffer_get_iter_at_line ((GtkTextBuffer*) self, &start_iter, line);
-	gtk_text_buffer_get_iter_at_line ((GtkTextBuffer*) self, &end_iter, line + 1);
-	text = gtk_text_buffer_get_text ((GtkTextBuffer*) self, &start_iter, &end_iter, FALSE);
-	current_indent = g_strdup ("");
+	gtk_text_buffer_get_iter_at_line ((GtkTextBuffer*) self, &_tmp0_, line);
+	start_iter = _tmp0_;
+	gtk_text_buffer_get_iter_at_line ((GtkTextBuffer*) self, &_tmp1_, line + 1);
+	end_iter = _tmp1_;
+	_tmp2_ = gtk_text_buffer_get_text ((GtkTextBuffer*) self, &start_iter, &end_iter, FALSE);
+	text = _tmp2_;
+	_tmp3_ = g_strdup ("");
+	current_indent = _tmp3_;
 	{
 		glong i;
 		i = (glong) 0;
 		{
-			gboolean _tmp0_;
-			_tmp0_ = TRUE;
+			gboolean _tmp4_;
+			_tmp4_ = TRUE;
 			while (TRUE) {
-				gboolean _tmp1_ = FALSE;
-				if (!_tmp0_) {
+				gint _tmp5_;
+				gboolean _tmp6_ = FALSE;
+				gchar _tmp7_;
+				if (!_tmp4_) {
 					i++;
 				}
-				_tmp0_ = FALSE;
-				if (!(i < string_get_length (text))) {
+				_tmp4_ = FALSE;
+				_tmp5_ = strlen (text);
+				if (!(i < _tmp5_)) {
 					break;
 				}
-				if (g_utf8_get_char (g_utf8_offset_to_pointer (text, i)) == ' ') {
-					_tmp1_ = TRUE;
+				_tmp7_ = string_get (text, i);
+				if (_tmp7_ == ' ') {
+					_tmp6_ = TRUE;
 				} else {
-					_tmp1_ = g_utf8_get_char (g_utf8_offset_to_pointer (text, i)) == '\t';
+					gchar _tmp8_;
+					_tmp8_ = string_get (text, i);
+					_tmp6_ = _tmp8_ == '\t';
 				}
-				if (_tmp1_) {
-					char* _tmp2_;
-					char* _tmp3_;
-					current_indent = (_tmp3_ = g_strconcat (current_indent, _tmp2_ = g_unichar_to_string (g_utf8_get_char (g_utf8_offset_to_pointer (text, i))), NULL), _g_free0 (current_indent), _tmp3_);
-					_g_free0 (_tmp2_);
+				if (_tmp6_) {
+					gchar _tmp9_;
+					gchar* _tmp10_ = NULL;
+					gchar* _tmp11_;
+					gchar* _tmp12_;
+					_tmp9_ = string_get (text, i);
+					_tmp10_ = g_strdup_printf ("%c", _tmp9_);
+					_tmp11_ = _tmp10_;
+					_tmp12_ = g_strconcat (current_indent, _tmp11_, NULL);
+					_g_free0 (current_indent);
+					current_indent = _tmp12_;
+					_g_free0 (_tmp11_);
 				} else {
 					break;
 				}
@@ -1466,27 +1904,40 @@ static void _document_search_delete_range_after_handler_gtk_text_buffer_delete_r
 }
 
 
-static void _document_search_insert_text_before_handler_gtk_text_buffer_insert_text (GtkTextBuffer* _sender, GtkTextIter* pos, const char* text, gint length, gpointer self) {
+static void _document_search_insert_text_before_handler_gtk_text_buffer_insert_text (GtkTextBuffer* _sender, GtkTextIter* pos, const gchar* text, gint length, gpointer self) {
 	document_search_insert_text_before_handler (self, pos);
 }
 
 
-static void _document_search_insert_text_after_handler_gtk_text_buffer_insert_text (GtkTextBuffer* _sender, GtkTextIter* pos, const char* text, gint length, gpointer self) {
+static void _document_search_insert_text_after_handler_gtk_text_buffer_insert_text (GtkTextBuffer* _sender, GtkTextIter* pos, const gchar* text, gint length, gpointer self) {
 	document_search_insert_text_after_handler (self, pos, text, length);
 }
 
 
-void document_set_search_text (Document* self, const char* text, gboolean case_sensitive, gboolean entire_word, guint* nb_matches, guint* num_match, gboolean select) {
+void document_set_search_text (Document* self, const gchar* text, gboolean case_sensitive, gboolean entire_word, guint* nb_matches, guint* num_match, gboolean select) {
+	guint _nb_matches = 0U;
+	guint _num_match = 0U;
 	gboolean _tmp0_ = FALSE;
 	gboolean _tmp1_ = FALSE;
-	char* _tmp2_;
-	GtkTextIter start = {0};
-	GtkTextIter match_start = {0};
-	GtkTextIter match_end = {0};
-	GtkTextIter insert = {0};
+	gchar* _tmp2_;
+	GtkTextIter _tmp3_ = {0};
+	GtkTextIter start;
+	GtkTextIter _tmp4_ = {0};
+	GtkTextIter match_start;
+	GtkTextIter _tmp5_ = {0};
+	GtkTextIter match_end;
+	GtkTextIter _tmp6_ = {0};
+	GtkTextIter insert;
+	GtkTextIter _tmp7_ = {0};
+	GtkTextIter try_match_start;
+	GtkTextIter _tmp8_ = {0};
+	GtkTextIter try_match_end;
+	GtkTextIter _tmp9_ = {0};
+	GtkTextMark* _tmp10_ = NULL;
+	GtkTextIter _tmp11_ = {0};
 	gboolean next_match_after_cursor_found;
 	guint i;
-	gboolean _tmp4_ = FALSE;
+	gboolean _tmp17_ = FALSE;
 	g_return_if_fail (self != NULL);
 	g_return_if_fail (text != NULL);
 	if (self->priv->search_text == NULL) {
@@ -1496,7 +1947,7 @@ void document_set_search_text (Document* self, const char* text, gboolean case_s
 		g_signal_connect_object ((GtkTextBuffer*) self, "insert-text", (GCallback) _document_search_insert_text_before_handler_gtk_text_buffer_insert_text, self, 0);
 		g_signal_connect_object ((GtkTextBuffer*) self, "insert-text", (GCallback) _document_search_insert_text_after_handler_gtk_text_buffer_insert_text, self, G_CONNECT_AFTER);
 	}
-	if (_vala_strcmp0 (self->priv->search_text, text) == 0) {
+	if (g_strcmp0 (self->priv->search_text, text) == 0) {
 		_tmp1_ = self->priv->search_case_sensitive == case_sensitive;
 	} else {
 		_tmp1_ = FALSE;
@@ -1507,52 +1958,109 @@ void document_set_search_text (Document* self, const char* text, gboolean case_s
 		_tmp0_ = FALSE;
 	}
 	if (_tmp0_) {
-		*nb_matches = self->priv->search_nb_matches;
-		*num_match = self->priv->search_num_match;
+		_nb_matches = self->priv->search_nb_matches;
+		_num_match = self->priv->search_num_match;
+		if (nb_matches) {
+			*nb_matches = _nb_matches;
+		}
+		if (num_match) {
+			*num_match = _num_match;
+		}
 		return;
 	}
 	document_invalidate_search_selected_marks (self);
 	document_clear_search (self, FALSE);
-	self->priv->search_text = (_tmp2_ = g_strdup (text), _g_free0 (self->priv->search_text), _tmp2_);
+	_tmp2_ = g_strdup (text);
+	_g_free0 (self->priv->search_text);
+	self->priv->search_text = _tmp2_;
 	self->priv->search_case_sensitive = case_sensitive;
 	self->priv->search_entire_word = entire_word;
-	gtk_text_buffer_get_start_iter ((GtkTextBuffer*) self, &start);
-	gtk_text_buffer_get_iter_at_mark ((GtkTextBuffer*) self, &insert, gtk_text_buffer_get_insert ((GtkTextBuffer*) self));
+	start = _tmp3_;
+	match_start = _tmp4_;
+	match_end = _tmp5_;
+	insert = _tmp6_;
+	try_match_start = _tmp7_;
+	try_match_end = _tmp8_;
+	gtk_text_buffer_get_start_iter ((GtkTextBuffer*) self, &_tmp9_);
+	start = _tmp9_;
+	_tmp10_ = gtk_text_buffer_get_insert ((GtkTextBuffer*) self);
+	gtk_text_buffer_get_iter_at_mark ((GtkTextBuffer*) self, &_tmp11_, _tmp10_);
+	insert = _tmp11_;
 	next_match_after_cursor_found = !select;
 	i = (guint) 0;
 	while (TRUE) {
-		gboolean _tmp3_ = FALSE;
-		if (!document_iter_forward_search (self, &start, NULL, &match_start, &match_end)) {
+		GtkTextIter _tmp12_ = {0};
+		GtkTextIter _tmp13_ = {0};
+		gboolean _tmp14_;
+		gboolean _tmp15_ = FALSE;
+		_tmp14_ = document_iter_forward_search (self, &start, NULL, &_tmp12_, &_tmp13_);
+		try_match_start = _tmp12_;
+		try_match_end = _tmp13_;
+		if (!_tmp14_) {
 			break;
 		}
-		i++;
+		match_start = try_match_start;
+		match_end = try_match_end;
 		if (!next_match_after_cursor_found) {
-			_tmp3_ = gtk_text_iter_compare (&insert, &match_end) <= 0;
+			gint _tmp16_;
+			_tmp16_ = gtk_text_iter_compare (&insert, &match_end);
+			_tmp15_ = _tmp16_ <= 0;
 		} else {
-			_tmp3_ = FALSE;
+			_tmp15_ = FALSE;
 		}
-		if (_tmp3_) {
+		if (_tmp15_) {
 			next_match_after_cursor_found = TRUE;
-			self->priv->search_num_match = *num_match = i;
+			_num_match = i;
+			self->priv->search_num_match = _num_match;
 			document_move_search_marks (self, &match_start, &match_end, TRUE);
 		} else {
 			gtk_text_buffer_apply_tag ((GtkTextBuffer*) self, self->priv->found_tag, &match_start, &match_end);
 		}
 		start = match_end;
+		i++;
 	}
 	if (!next_match_after_cursor_found) {
-		_tmp4_ = i > 0;
+		_tmp17_ = i > 0;
 	} else {
-		_tmp4_ = FALSE;
+		_tmp17_ = FALSE;
 	}
-	if (_tmp4_) {
-		self->priv->search_num_match = *num_match = i;
+	if (_tmp17_) {
+		_num_match = i;
+		self->priv->search_num_match = _num_match;
 		document_move_search_marks (self, &match_start, &match_end, TRUE);
 	}
-	self->priv->search_nb_matches = *nb_matches = i;
+	_nb_matches = i;
+	self->priv->search_nb_matches = _nb_matches;
 	if (self->priv->search_nb_matches == 0) {
 		document_clear_search_tags (self);
 	}
+	if (nb_matches) {
+		*nb_matches = _nb_matches;
+	}
+	if (num_match) {
+		*num_match = _num_match;
+	}
+}
+
+
+void document_select_selected_search_text (Document* self) {
+	GtkTextIter start = {0};
+	GtkTextIter end = {0};
+	GtkTextMark* _tmp0_ = NULL;
+	GtkTextIter _tmp1_ = {0};
+	GtkTextMark* _tmp2_ = NULL;
+	GtkTextIter _tmp3_ = {0};
+	GtkTextMark* _tmp4_ = NULL;
+	g_return_if_fail (self != NULL);
+	_tmp0_ = gtk_text_buffer_get_mark ((GtkTextBuffer*) self, "search_selected_start");
+	gtk_text_buffer_get_iter_at_mark ((GtkTextBuffer*) self, &_tmp1_, _tmp0_);
+	start = _tmp1_;
+	_tmp2_ = gtk_text_buffer_get_mark ((GtkTextBuffer*) self, "search_selected_end");
+	gtk_text_buffer_get_iter_at_mark ((GtkTextBuffer*) self, &_tmp3_, _tmp2_);
+	end = _tmp3_;
+	gtk_text_buffer_place_cursor ((GtkTextBuffer*) self, &start);
+	_tmp4_ = gtk_text_buffer_get_mark ((GtkTextBuffer*) self, "selection_bound");
+	gtk_text_buffer_move_mark ((GtkTextBuffer*) self, _tmp4_, &end);
 }
 
 
@@ -1561,21 +2069,39 @@ void document_search_forward (Document* self) {
 	GtkTextIter start = {0};
 	GtkTextIter match_start = {0};
 	GtkTextIter match_end = {0};
+	GtkTextMark* _tmp0_ = NULL;
+	GtkTextIter _tmp1_ = {0};
+	GtkTextIter _tmp2_ = {0};
 	gboolean increment;
+	gboolean _tmp3_;
+	GtkTextIter _tmp6_ = {0};
+	GtkTextIter _tmp7_ = {0};
+	gboolean _tmp8_;
 	g_return_if_fail (self != NULL);
 	g_return_if_fail (self->priv->search_text != NULL);
 	if (self->priv->search_nb_matches == 0) {
 		return;
 	}
-	gtk_text_buffer_get_iter_at_mark ((GtkTextBuffer*) self, &start_search, gtk_text_buffer_get_insert ((GtkTextBuffer*) self));
-	gtk_text_buffer_get_start_iter ((GtkTextBuffer*) self, &start);
+	_tmp0_ = gtk_text_buffer_get_insert ((GtkTextBuffer*) self);
+	gtk_text_buffer_get_iter_at_mark ((GtkTextBuffer*) self, &_tmp1_, _tmp0_);
+	start_search = _tmp1_;
+	gtk_text_buffer_get_start_iter ((GtkTextBuffer*) self, &_tmp2_);
+	start = _tmp2_;
 	increment = FALSE;
-	if (gtk_text_iter_has_tag (&start_search, self->priv->found_tag_selected)) {
-		gtk_text_buffer_get_iter_at_mark ((GtkTextBuffer*) self, &start_search, gtk_text_buffer_get_mark ((GtkTextBuffer*) self, "search_selected_end"));
+	_tmp3_ = gtk_text_iter_has_tag (&start_search, self->priv->found_tag_selected);
+	if (_tmp3_) {
+		GtkTextMark* _tmp4_ = NULL;
+		GtkTextIter _tmp5_ = {0};
+		_tmp4_ = gtk_text_buffer_get_mark ((GtkTextBuffer*) self, "search_selected_end");
+		gtk_text_buffer_get_iter_at_mark ((GtkTextBuffer*) self, &_tmp5_, _tmp4_);
+		start_search = _tmp5_;
 		increment = TRUE;
 	}
 	document_replace_found_tag_selected (self);
-	if (document_iter_forward_search (self, &start_search, NULL, &match_start, &match_end)) {
+	_tmp8_ = document_iter_forward_search (self, &start_search, NULL, &_tmp6_, &_tmp7_);
+	match_start = _tmp6_;
+	match_end = _tmp7_;
+	if (_tmp8_) {
 		document_move_search_marks (self, &match_start, &match_end, TRUE);
 		if (increment) {
 			self->priv->search_num_match++;
@@ -1583,7 +2109,13 @@ void document_search_forward (Document* self) {
 			return;
 		}
 	} else {
-		if (document_iter_forward_search (self, &start, NULL, &match_start, &match_end)) {
+		GtkTextIter _tmp9_ = {0};
+		GtkTextIter _tmp10_ = {0};
+		gboolean _tmp11_;
+		_tmp11_ = document_iter_forward_search (self, &start, NULL, &_tmp9_, &_tmp10_);
+		match_start = _tmp9_;
+		match_end = _tmp10_;
+		if (_tmp11_) {
 			document_move_search_marks (self, &match_start, &match_end, TRUE);
 			self->priv->search_num_match = (guint) 1;
 			g_signal_emit_by_name (self, "search-info-updated", TRUE, self->priv->search_nb_matches, self->priv->search_num_match);
@@ -1599,41 +2131,67 @@ void document_search_backward (Document* self) {
 	GtkTextIter end = {0};
 	GtkTextIter match_start = {0};
 	GtkTextIter match_end = {0};
+	GtkTextMark* _tmp0_ = NULL;
+	GtkTextIter _tmp1_ = {0};
+	GtkTextIter _tmp2_ = {0};
 	gboolean decrement;
 	gboolean move_cursor;
 	GtkTextIter start_prev;
-	gboolean _tmp0_ = FALSE;
+	gboolean _tmp3_ = FALSE;
+	gboolean _tmp4_;
+	GtkTextIter _tmp11_ = {0};
+	GtkTextIter _tmp12_ = {0};
+	gboolean _tmp13_;
 	g_return_if_fail (self != NULL);
 	g_return_if_fail (self->priv->search_text != NULL);
 	if (self->priv->search_nb_matches == 0) {
 		return;
 	}
-	gtk_text_buffer_get_iter_at_mark ((GtkTextBuffer*) self, &start_search, gtk_text_buffer_get_insert ((GtkTextBuffer*) self));
-	gtk_text_buffer_get_end_iter ((GtkTextBuffer*) self, &end);
+	_tmp0_ = gtk_text_buffer_get_insert ((GtkTextBuffer*) self);
+	gtk_text_buffer_get_iter_at_mark ((GtkTextBuffer*) self, &_tmp1_, _tmp0_);
+	start_search = _tmp1_;
+	gtk_text_buffer_get_end_iter ((GtkTextBuffer*) self, &_tmp2_);
+	end = _tmp2_;
 	decrement = FALSE;
 	move_cursor = TRUE;
 	start_prev = start_search;
 	gtk_text_iter_backward_char (&start_prev);
-	if (gtk_text_iter_has_tag (&start_search, self->priv->found_tag_selected)) {
-		_tmp0_ = TRUE;
+	_tmp4_ = gtk_text_iter_has_tag (&start_search, self->priv->found_tag_selected);
+	if (_tmp4_) {
+		_tmp3_ = TRUE;
 	} else {
-		_tmp0_ = gtk_text_iter_has_tag (&start_prev, self->priv->found_tag_selected);
-	}
-	if (_tmp0_) {
-		gtk_text_buffer_get_iter_at_mark ((GtkTextBuffer*) self, &start_search, gtk_text_buffer_get_mark ((GtkTextBuffer*) self, "search_selected_start"));
+		gboolean _tmp5_;
+		_tmp5_ = gtk_text_iter_has_tag (&start_prev, self->priv->found_tag_selected);
+		_tmp3_ = _tmp5_;
+	}
+	if (_tmp3_) {
+		GtkTextMark* _tmp6_ = NULL;
+		GtkTextIter _tmp7_ = {0};
+		_tmp6_ = gtk_text_buffer_get_mark ((GtkTextBuffer*) self, "search_selected_start");
+		gtk_text_buffer_get_iter_at_mark ((GtkTextBuffer*) self, &_tmp7_, _tmp6_);
+		start_search = _tmp7_;
 		decrement = TRUE;
 	} else {
-		if (gtk_text_iter_has_tag (&start_search, self->priv->found_tag)) {
+		gboolean _tmp8_;
+		_tmp8_ = gtk_text_iter_has_tag (&start_search, self->priv->found_tag);
+		if (_tmp8_) {
+			gint _tmp9_;
 			move_cursor = FALSE;
-			gtk_text_iter_forward_chars (&start_search, (gint) string_get_length (self->priv->search_text));
+			_tmp9_ = strlen (self->priv->search_text);
+			gtk_text_iter_forward_chars (&start_search, (gint) _tmp9_);
 		} else {
-			if (gtk_text_iter_has_tag (&start_prev, self->priv->found_tag)) {
+			gboolean _tmp10_;
+			_tmp10_ = gtk_text_iter_has_tag (&start_prev, self->priv->found_tag);
+			if (_tmp10_) {
 				move_cursor = FALSE;
 			}
 		}
 	}
 	document_replace_found_tag_selected (self);
-	if (document_iter_backward_search (self, &start_search, NULL, &match_start, &match_end)) {
+	_tmp13_ = document_iter_backward_search (self, &start_search, NULL, &_tmp11_, &_tmp12_);
+	match_start = _tmp11_;
+	match_end = _tmp12_;
+	if (_tmp13_) {
 		document_move_search_marks (self, &match_start, &match_end, move_cursor);
 		if (decrement) {
 			self->priv->search_num_match--;
@@ -1641,7 +2199,13 @@ void document_search_backward (Document* self) {
 			return;
 		}
 	} else {
-		if (document_iter_backward_search (self, &end, NULL, &match_start, &match_end)) {
+		GtkTextIter _tmp14_ = {0};
+		GtkTextIter _tmp15_ = {0};
+		gboolean _tmp16_;
+		_tmp16_ = document_iter_backward_search (self, &end, NULL, &_tmp14_, &_tmp15_);
+		match_start = _tmp14_;
+		match_end = _tmp15_;
+		if (_tmp16_) {
 			document_move_search_marks (self, &match_start, &match_end, TRUE);
 			self->priv->search_num_match = self->priv->search_nb_matches;
 			g_signal_emit_by_name (self, "search-info-updated", TRUE, self->priv->search_nb_matches, self->priv->search_num_match);
@@ -1653,98 +2217,138 @@ void document_search_backward (Document* self) {
 
 
 static gboolean document_iter_forward_search (Document* self, GtkTextIter* start, GtkTextIter* end, GtkTextIter* match_start, GtkTextIter* match_end) {
+	GtkTextIter _match_start = {0};
+	GtkTextIter _match_end = {0};
 	gboolean result = FALSE;
 	gboolean found;
 	g_return_val_if_fail (self != NULL, FALSE);
 	found = FALSE;
 	while (TRUE) {
-		gboolean _tmp0_ = FALSE;
+		GtkSourceSearchFlags _tmp0_;
+		GtkTextIter _tmp1_ = {0};
+		GtkTextIter _tmp2_ = {0};
+		gboolean _tmp3_;
+		gboolean _tmp4_ = FALSE;
 		if (!(!found)) {
 			break;
 		}
-		found = gtk_source_iter_forward_search (start, self->priv->search_text, document_get_search_flags (self), match_start, match_end, end);
+		_tmp0_ = document_get_search_flags (self);
+		_tmp3_ = gtk_source_iter_forward_search (start, self->priv->search_text, _tmp0_, &_tmp1_, &_tmp2_, end);
+		_match_start = _tmp1_;
+		_match_end = _tmp2_;
+		found = _tmp3_;
 		if (found) {
-			_tmp0_ = self->priv->search_entire_word;
+			_tmp4_ = self->priv->search_entire_word;
 		} else {
-			_tmp0_ = FALSE;
+			_tmp4_ = FALSE;
 		}
-		if (_tmp0_) {
-			gboolean _tmp1_ = FALSE;
-			if (gtk_text_iter_starts_word (match_start)) {
-				_tmp1_ = gtk_text_iter_ends_word (match_end);
+		if (_tmp4_) {
+			gboolean _tmp5_ = FALSE;
+			gboolean _tmp6_;
+			_tmp6_ = gtk_text_iter_starts_word (&_match_start);
+			if (_tmp6_) {
+				gboolean _tmp7_;
+				_tmp7_ = gtk_text_iter_ends_word (&_match_end);
+				_tmp5_ = _tmp7_;
 			} else {
-				_tmp1_ = FALSE;
+				_tmp5_ = FALSE;
 			}
-			found = _tmp1_;
+			found = _tmp5_;
 			if (!found) {
-				*start = *match_end;
+				*start = _match_end;
 			}
 		} else {
 			break;
 		}
 	}
 	result = found;
+	if (match_start) {
+		*match_start = _match_start;
+	}
+	if (match_end) {
+		*match_end = _match_end;
+	}
 	return result;
 }
 
 
 static gboolean document_iter_backward_search (Document* self, GtkTextIter* start, GtkTextIter* end, GtkTextIter* match_start, GtkTextIter* match_end) {
+	GtkTextIter _match_start = {0};
+	GtkTextIter _match_end = {0};
 	gboolean result = FALSE;
 	gboolean found;
 	g_return_val_if_fail (self != NULL, FALSE);
 	found = FALSE;
 	while (TRUE) {
-		gboolean _tmp0_ = FALSE;
+		GtkSourceSearchFlags _tmp0_;
+		GtkTextIter _tmp1_ = {0};
+		GtkTextIter _tmp2_ = {0};
+		gboolean _tmp3_;
+		gboolean _tmp4_ = FALSE;
 		if (!(!found)) {
 			break;
 		}
-		found = gtk_source_iter_backward_search (start, self->priv->search_text, document_get_search_flags (self), match_start, match_end, end);
+		_tmp0_ = document_get_search_flags (self);
+		_tmp3_ = gtk_source_iter_backward_search (start, self->priv->search_text, _tmp0_, &_tmp1_, &_tmp2_, end);
+		_match_start = _tmp1_;
+		_match_end = _tmp2_;
+		found = _tmp3_;
 		if (found) {
-			_tmp0_ = self->priv->search_entire_word;
+			_tmp4_ = self->priv->search_entire_word;
 		} else {
-			_tmp0_ = FALSE;
+			_tmp4_ = FALSE;
 		}
-		if (_tmp0_) {
-			gboolean _tmp1_ = FALSE;
-			if (gtk_text_iter_starts_word (match_start)) {
-				_tmp1_ = gtk_text_iter_ends_word (match_end);
+		if (_tmp4_) {
+			gboolean _tmp5_ = FALSE;
+			gboolean _tmp6_;
+			_tmp6_ = gtk_text_iter_starts_word (&_match_start);
+			if (_tmp6_) {
+				gboolean _tmp7_;
+				_tmp7_ = gtk_text_iter_ends_word (&_match_end);
+				_tmp5_ = _tmp7_;
 			} else {
-				_tmp1_ = FALSE;
+				_tmp5_ = FALSE;
 			}
-			found = _tmp1_;
+			found = _tmp5_;
 			if (!found) {
-				*start = *match_start;
+				*start = _match_start;
 			}
 		} else {
 			break;
 		}
 	}
 	result = found;
+	if (match_start) {
+		*match_start = _match_start;
+	}
+	if (match_end) {
+		*match_end = _match_end;
+	}
 	return result;
 }
 
 
 void document_clear_search (Document* self, gboolean disconnect_signals) {
-	char* _tmp0_;
 	g_return_if_fail (self != NULL);
 	document_clear_search_tags (self);
-	self->priv->search_text = (_tmp0_ = NULL, _g_free0 (self->priv->search_text), _tmp0_);
+	_g_free0 (self->priv->search_text);
+	self->priv->search_text = NULL;
 	if (disconnect_signals) {
+		guint _tmp0_;
 		guint _tmp1_;
 		guint _tmp2_;
 		guint _tmp3_;
 		guint _tmp4_;
-		guint _tmp5_;
-		g_signal_parse_name ("cursor-moved", TYPE_DOCUMENT, &_tmp1_, NULL, FALSE);
-		g_signal_handlers_disconnect_matched (self, G_SIGNAL_MATCH_ID | G_SIGNAL_MATCH_FUNC | G_SIGNAL_MATCH_DATA, _tmp1_, 0, NULL, (GCallback) _document_search_cursor_moved_handler_document_cursor_moved, self);
+		g_signal_parse_name ("cursor-moved", TYPE_DOCUMENT, &_tmp0_, NULL, FALSE);
+		g_signal_handlers_disconnect_matched (self, G_SIGNAL_MATCH_ID | G_SIGNAL_MATCH_FUNC | G_SIGNAL_MATCH_DATA, _tmp0_, 0, NULL, (GCallback) _document_search_cursor_moved_handler_document_cursor_moved, self);
+		g_signal_parse_name ("delete-range", GTK_TYPE_TEXT_BUFFER, &_tmp1_, NULL, FALSE);
+		g_signal_handlers_disconnect_matched ((GtkTextBuffer*) self, G_SIGNAL_MATCH_ID | G_SIGNAL_MATCH_FUNC | G_SIGNAL_MATCH_DATA, _tmp1_, 0, NULL, (GCallback) _document_search_delete_range_before_handler_gtk_text_buffer_delete_range, self);
 		g_signal_parse_name ("delete-range", GTK_TYPE_TEXT_BUFFER, &_tmp2_, NULL, FALSE);
-		g_signal_handlers_disconnect_matched ((GtkTextBuffer*) self, G_SIGNAL_MATCH_ID | G_SIGNAL_MATCH_FUNC | G_SIGNAL_MATCH_DATA, _tmp2_, 0, NULL, (GCallback) _document_search_delete_range_before_handler_gtk_text_buffer_delete_range, self);
-		g_signal_parse_name ("delete-range", GTK_TYPE_TEXT_BUFFER, &_tmp3_, NULL, FALSE);
-		g_signal_handlers_disconnect_matched ((GtkTextBuffer*) self, G_SIGNAL_MATCH_ID | G_SIGNAL_MATCH_FUNC | G_SIGNAL_MATCH_DATA, _tmp3_, 0, NULL, (GCallback) _document_search_delete_range_after_handler_gtk_text_buffer_delete_range, self);
+		g_signal_handlers_disconnect_matched ((GtkTextBuffer*) self, G_SIGNAL_MATCH_ID | G_SIGNAL_MATCH_FUNC | G_SIGNAL_MATCH_DATA, _tmp2_, 0, NULL, (GCallback) _document_search_delete_range_after_handler_gtk_text_buffer_delete_range, self);
+		g_signal_parse_name ("insert-text", GTK_TYPE_TEXT_BUFFER, &_tmp3_, NULL, FALSE);
+		g_signal_handlers_disconnect_matched ((GtkTextBuffer*) self, G_SIGNAL_MATCH_ID | G_SIGNAL_MATCH_FUNC | G_SIGNAL_MATCH_DATA, _tmp3_, 0, NULL, (GCallback) _document_search_insert_text_before_handler_gtk_text_buffer_insert_text, self);
 		g_signal_parse_name ("insert-text", GTK_TYPE_TEXT_BUFFER, &_tmp4_, NULL, FALSE);
-		g_signal_handlers_disconnect_matched ((GtkTextBuffer*) self, G_SIGNAL_MATCH_ID | G_SIGNAL_MATCH_FUNC | G_SIGNAL_MATCH_DATA, _tmp4_, 0, NULL, (GCallback) _document_search_insert_text_before_handler_gtk_text_buffer_insert_text, self);
-		g_signal_parse_name ("insert-text", GTK_TYPE_TEXT_BUFFER, &_tmp5_, NULL, FALSE);
-		g_signal_handlers_disconnect_matched ((GtkTextBuffer*) self, G_SIGNAL_MATCH_ID | G_SIGNAL_MATCH_FUNC | G_SIGNAL_MATCH_DATA, _tmp5_, 0, NULL, (GCallback) _document_search_insert_text_after_handler_gtk_text_buffer_insert_text, self);
+		g_signal_handlers_disconnect_matched ((GtkTextBuffer*) self, G_SIGNAL_MATCH_ID | G_SIGNAL_MATCH_FUNC | G_SIGNAL_MATCH_DATA, _tmp4_, 0, NULL, (GCallback) _document_search_insert_text_after_handler_gtk_text_buffer_insert_text, self);
 	}
 }
 
@@ -1752,9 +2356,13 @@ void document_clear_search (Document* self, gboolean disconnect_signals) {
 static void document_clear_search_tags (Document* self) {
 	GtkTextIter start = {0};
 	GtkTextIter end = {0};
+	GtkTextIter _tmp0_ = {0};
+	GtkTextIter _tmp1_ = {0};
 	g_return_if_fail (self != NULL);
 	document_invalidate_search_selected_marks (self);
-	gtk_text_buffer_get_bounds ((GtkTextBuffer*) self, &start, &end);
+	gtk_text_buffer_get_bounds ((GtkTextBuffer*) self, &_tmp0_, &_tmp1_);
+	start = _tmp0_;
+	end = _tmp1_;
 	gtk_text_buffer_remove_tag ((GtkTextBuffer*) self, self->priv->found_tag, &start, &end);
 	gtk_text_buffer_remove_tag ((GtkTextBuffer*) self, self->priv->found_tag_selected, &start, &end);
 }
@@ -1763,28 +2371,40 @@ static void document_clear_search_tags (Document* self) {
 static void document_search_cursor_moved_handler (Document* self) {
 	GtkTextIter insert = {0};
 	GtkTextIter insert_previous = {0};
-	gboolean _tmp0_ = FALSE;
-	gboolean _tmp1_ = FALSE;
+	GtkTextMark* _tmp0_ = NULL;
+	GtkTextIter _tmp1_ = {0};
+	gboolean _tmp2_ = FALSE;
+	gboolean _tmp3_;
+	gboolean _tmp5_ = FALSE;
+	gboolean _tmp6_;
 	g_return_if_fail (self != NULL);
-	gtk_text_buffer_get_iter_at_mark ((GtkTextBuffer*) self, &insert, gtk_text_buffer_get_insert ((GtkTextBuffer*) self));
+	_tmp0_ = gtk_text_buffer_get_insert ((GtkTextBuffer*) self);
+	gtk_text_buffer_get_iter_at_mark ((GtkTextBuffer*) self, &_tmp1_, _tmp0_);
+	insert = _tmp1_;
 	insert_previous = insert;
 	gtk_text_iter_backward_char (&insert_previous);
-	if (gtk_text_iter_has_tag (&insert, self->priv->found_tag_selected)) {
-		_tmp0_ = TRUE;
+	_tmp3_ = gtk_text_iter_has_tag (&insert, self->priv->found_tag_selected);
+	if (_tmp3_) {
+		_tmp2_ = TRUE;
 	} else {
-		_tmp0_ = gtk_text_iter_has_tag (&insert_previous, self->priv->found_tag_selected);
+		gboolean _tmp4_;
+		_tmp4_ = gtk_text_iter_has_tag (&insert_previous, self->priv->found_tag_selected);
+		_tmp2_ = _tmp4_;
 	}
-	if (_tmp0_) {
+	if (_tmp2_) {
 		return;
 	}
 	document_replace_found_tag_selected (self);
 	document_invalidate_search_selected_marks (self);
-	if (gtk_text_iter_has_tag (&insert, self->priv->found_tag)) {
-		_tmp1_ = TRUE;
+	_tmp6_ = gtk_text_iter_has_tag (&insert, self->priv->found_tag);
+	if (_tmp6_) {
+		_tmp5_ = TRUE;
 	} else {
-		_tmp1_ = gtk_text_iter_has_tag (&insert_previous, self->priv->found_tag);
+		gboolean _tmp7_;
+		_tmp7_ = gtk_text_iter_has_tag (&insert_previous, self->priv->found_tag);
+		_tmp5_ = _tmp7_;
 	}
-	if (_tmp1_) {
+	if (_tmp5_) {
 		document_search_backward (self);
 	} else {
 		g_signal_emit_by_name (self, "search-info-updated", FALSE, self->priv->search_nb_matches, (guint) 0);
@@ -1797,24 +2417,38 @@ static void document_search_delete_range_before_handler (Document* self, GtkText
 	GtkTextIter stop_search = {0};
 	GtkTextIter match_start = {0};
 	GtkTextIter match_end = {0};
+	gint _tmp0_;
+	gint _tmp1_;
 	g_return_if_fail (self != NULL);
 	start_search = *start;
-	gtk_text_iter_backward_chars (&start_search, ((gint) string_get_length (self->priv->search_text)) - 1);
+	_tmp0_ = strlen (self->priv->search_text);
+	gtk_text_iter_backward_chars (&start_search, ((gint) _tmp0_) - 1);
 	stop_search = *end;
-	gtk_text_iter_forward_chars (&stop_search, ((gint) string_get_length (self->priv->search_text)) - 1);
+	_tmp1_ = strlen (self->priv->search_text);
+	gtk_text_iter_forward_chars (&stop_search, ((gint) _tmp1_) - 1);
 	document_replace_found_tag_selected (self);
 	document_invalidate_search_selected_marks (self);
 	while (TRUE) {
-		gboolean _tmp0_ = FALSE;
-		if (!document_iter_forward_search (self, &start_search, &stop_search, &match_start, &match_end)) {
+		GtkTextIter _tmp2_ = {0};
+		GtkTextIter _tmp3_ = {0};
+		gboolean _tmp4_;
+		gboolean _tmp5_ = FALSE;
+		gint _tmp6_;
+		_tmp4_ = document_iter_forward_search (self, &start_search, &stop_search, &_tmp2_, &_tmp3_);
+		match_start = _tmp2_;
+		match_end = _tmp3_;
+		if (!_tmp4_) {
 			break;
 		}
-		if (gtk_text_iter_compare (&match_start, start) < 0) {
-			_tmp0_ = TRUE;
+		_tmp6_ = gtk_text_iter_compare (&match_start, start);
+		if (_tmp6_ < 0) {
+			_tmp5_ = TRUE;
 		} else {
-			_tmp0_ = gtk_text_iter_compare (&match_end, end) > 0;
+			gint _tmp7_;
+			_tmp7_ = gtk_text_iter_compare (&match_end, end);
+			_tmp5_ = _tmp7_ > 0;
 		}
-		if (_tmp0_) {
+		if (_tmp5_) {
 			gtk_text_buffer_remove_tag ((GtkTextBuffer*) self, self->priv->found_tag, &match_start, &match_end);
 			gtk_text_buffer_remove_tag ((GtkTextBuffer*) self, self->priv->found_tag_selected, &match_start, &match_end);
 		}
@@ -1827,32 +2461,51 @@ static void document_search_delete_range_before_handler (Document* self, GtkText
 static void document_search_delete_range_after_handler (Document* self, GtkTextIter* location) {
 	GtkTextIter start_search = {0};
 	GtkTextIter stop_search = {0};
+	gint _tmp0_;
+	gint _tmp1_;
 	g_return_if_fail (self != NULL);
-	start_search = stop_search = *location;
-	gtk_text_iter_backward_chars (&start_search, ((gint) string_get_length (self->priv->search_text)) - 1);
-	gtk_text_iter_forward_chars (&stop_search, ((gint) string_get_length (self->priv->search_text)) - 1);
+	stop_search = *location;
+	start_search = stop_search;
+	_tmp0_ = strlen (self->priv->search_text);
+	gtk_text_iter_backward_chars (&start_search, ((gint) _tmp0_) - 1);
+	_tmp1_ = strlen (self->priv->search_text);
+	gtk_text_iter_forward_chars (&stop_search, ((gint) _tmp1_) - 1);
 	document_search_matches_between (self, &start_search, &stop_search);
 }
 
 
 static void document_search_insert_text_before_handler (Document* self, GtkTextIter* location) {
 	gboolean _tmp0_ = FALSE;
+	gboolean _tmp1_;
 	g_return_if_fail (self != NULL);
-	if (gtk_text_iter_has_tag (location, self->priv->found_tag)) {
+	_tmp1_ = gtk_text_iter_has_tag (location, self->priv->found_tag);
+	if (_tmp1_) {
 		_tmp0_ = TRUE;
 	} else {
-		_tmp0_ = gtk_text_iter_has_tag (location, self->priv->found_tag_selected);
+		gboolean _tmp2_;
+		_tmp2_ = gtk_text_iter_has_tag (location, self->priv->found_tag_selected);
+		_tmp0_ = _tmp2_;
 	}
 	if (_tmp0_) {
 		GtkTextIter start_search = {0};
 		GtkTextIter match_start = {0};
 		GtkTextIter match_end = {0};
+		gint _tmp3_;
+		GtkTextIter _tmp4_ = {0};
+		GtkTextIter _tmp5_ = {0};
+		gboolean _tmp6_;
 		document_replace_found_tag_selected (self);
 		document_invalidate_search_selected_marks (self);
 		start_search = *location;
-		gtk_text_iter_forward_chars (&start_search, ((gint) string_get_length (self->priv->search_text)) - 1);
-		if (document_iter_backward_search (self, &start_search, NULL, &match_start, &match_end)) {
-			if (gtk_text_iter_compare (location, &match_end) < 0) {
+		_tmp3_ = strlen (self->priv->search_text);
+		gtk_text_iter_forward_chars (&start_search, ((gint) _tmp3_) - 1);
+		_tmp6_ = document_iter_backward_search (self, &start_search, NULL, &_tmp4_, &_tmp5_);
+		match_start = _tmp4_;
+		match_end = _tmp5_;
+		if (_tmp6_) {
+			gint _tmp7_;
+			_tmp7_ = gtk_text_iter_compare (location, &match_end);
+			if (_tmp7_ < 0) {
 				gtk_text_buffer_remove_tag ((GtkTextBuffer*) self, self->priv->found_tag, &match_start, &match_end);
 				gtk_text_buffer_remove_tag ((GtkTextBuffer*) self, self->priv->found_tag_selected, &match_start, &match_end);
 				self->priv->search_nb_matches--;
@@ -1862,19 +2515,24 @@ static void document_search_insert_text_before_handler (Document* self, GtkTextI
 }
 
 
-static void document_search_insert_text_after_handler (Document* self, GtkTextIter* location, const char* text, gint len) {
+static void document_search_insert_text_after_handler (Document* self, GtkTextIter* location, const gchar* text, gint len) {
 	GtkTextIter left_text;
 	GtkTextIter start_search = {0};
 	GtkTextIter stop_search = {0};
+	gint _tmp0_;
+	gint _tmp1_;
 	g_return_if_fail (self != NULL);
 	g_return_if_fail (text != NULL);
 	left_text = *location;
 	gtk_text_iter_backward_chars (&left_text, len);
 	gtk_text_buffer_remove_tag ((GtkTextBuffer*) self, self->priv->found_tag, &left_text, location);
 	gtk_text_buffer_remove_tag ((GtkTextBuffer*) self, self->priv->found_tag_selected, &left_text, location);
-	start_search = stop_search = *location;
-	gtk_text_iter_backward_chars (&start_search, (len + ((gint) string_get_length (self->priv->search_text))) - 1);
-	gtk_text_iter_forward_chars (&stop_search, ((gint) string_get_length (self->priv->search_text)) - 1);
+	stop_search = *location;
+	start_search = stop_search;
+	_tmp0_ = strlen (self->priv->search_text);
+	gtk_text_iter_backward_chars (&start_search, (len + ((gint) _tmp0_)) - 1);
+	_tmp1_ = strlen (self->priv->search_text);
+	gtk_text_iter_forward_chars (&stop_search, ((gint) _tmp1_) - 1);
 	document_search_matches_between (self, &start_search, &stop_search);
 }
 
@@ -1884,7 +2542,13 @@ static void document_search_matches_between (Document* self, GtkTextIter* start_
 	GtkTextIter match_end = {0};
 	g_return_if_fail (self != NULL);
 	while (TRUE) {
-		if (!document_iter_forward_search (self, start_search, stop_search, &match_start, &match_end)) {
+		GtkTextIter _tmp0_ = {0};
+		GtkTextIter _tmp1_ = {0};
+		gboolean _tmp2_;
+		_tmp2_ = document_iter_forward_search (self, start_search, stop_search, &_tmp0_, &_tmp1_);
+		match_start = _tmp0_;
+		match_end = _tmp1_;
+		if (!_tmp2_) {
 			break;
 		}
 		gtk_text_buffer_apply_tag ((GtkTextBuffer*) self, self->priv->found_tag, &match_start, &match_end);
@@ -1917,8 +2581,10 @@ static void document_move_search_marks (Document* self, GtkTextIter* start, GtkT
 	gtk_text_buffer_move_mark_by_name ((GtkTextBuffer*) self, "search_selected_start", start);
 	gtk_text_buffer_move_mark_by_name ((GtkTextBuffer*) self, "search_selected_end", end);
 	if (move_cursor) {
+		DocumentView* _tmp0_ = NULL;
 		gtk_text_buffer_place_cursor ((GtkTextBuffer*) self, start);
-		document_view_scroll_to_cursor (document_tab_get_view (self->tab), 0.25);
+		_tmp0_ = document_tab_get_view (self->tab);
+		document_view_scroll_to_cursor (_tmp0_, 0.25);
 	}
 }
 
@@ -1926,9 +2592,17 @@ static void document_move_search_marks (Document* self, GtkTextIter* start, GtkT
 static void document_replace_found_tag_selected (Document* self) {
 	GtkTextIter start = {0};
 	GtkTextIter end = {0};
+	GtkTextMark* _tmp0_ = NULL;
+	GtkTextIter _tmp1_ = {0};
+	GtkTextMark* _tmp2_ = NULL;
+	GtkTextIter _tmp3_ = {0};
 	g_return_if_fail (self != NULL);
-	gtk_text_buffer_get_iter_at_mark ((GtkTextBuffer*) self, &start, gtk_text_buffer_get_mark ((GtkTextBuffer*) self, "search_selected_start"));
-	gtk_text_buffer_get_iter_at_mark ((GtkTextBuffer*) self, &end, gtk_text_buffer_get_mark ((GtkTextBuffer*) self, "search_selected_end"));
+	_tmp0_ = gtk_text_buffer_get_mark ((GtkTextBuffer*) self, "search_selected_start");
+	gtk_text_buffer_get_iter_at_mark ((GtkTextBuffer*) self, &_tmp1_, _tmp0_);
+	start = _tmp1_;
+	_tmp2_ = gtk_text_buffer_get_mark ((GtkTextBuffer*) self, "search_selected_end");
+	gtk_text_buffer_get_iter_at_mark ((GtkTextBuffer*) self, &_tmp3_, _tmp2_);
+	end = _tmp3_;
 	gtk_text_buffer_remove_tag ((GtkTextBuffer*) self, self->priv->found_tag_selected, &start, &end);
 	gtk_text_buffer_apply_tag ((GtkTextBuffer*) self, self->priv->found_tag, &start, &end);
 }
@@ -1938,13 +2612,23 @@ static void document_find_num_match (Document* self) {
 	GtkTextIter start = {0};
 	GtkTextIter stop = {0};
 	GtkTextIter match_end = {0};
+	GtkTextIter _tmp0_ = {0};
+	GtkTextMark* _tmp1_ = NULL;
+	GtkTextIter _tmp2_ = {0};
 	guint i;
 	g_return_if_fail (self != NULL);
-	gtk_text_buffer_get_start_iter ((GtkTextBuffer*) self, &start);
-	gtk_text_buffer_get_iter_at_mark ((GtkTextBuffer*) self, &stop, gtk_text_buffer_get_mark ((GtkTextBuffer*) self, "search_selected_start"));
+	gtk_text_buffer_get_start_iter ((GtkTextBuffer*) self, &_tmp0_);
+	start = _tmp0_;
+	_tmp1_ = gtk_text_buffer_get_mark ((GtkTextBuffer*) self, "search_selected_start");
+	gtk_text_buffer_get_iter_at_mark ((GtkTextBuffer*) self, &_tmp2_, _tmp1_);
+	stop = _tmp2_;
 	i = (guint) 0;
 	while (TRUE) {
-		if (!document_iter_forward_search (self, &start, &stop, NULL, &match_end)) {
+		GtkTextIter _tmp3_ = {0};
+		gboolean _tmp4_;
+		_tmp4_ = document_iter_forward_search (self, &start, &stop, NULL, &_tmp3_);
+		match_end = _tmp3_;
+		if (!_tmp4_) {
 			break;
 		}
 		i++;
@@ -1957,144 +2641,177 @@ static void document_find_num_match (Document* self) {
 
 static void document_invalidate_search_selected_marks (Document* self) {
 	GtkTextIter iter = {0};
+	GtkTextIter _tmp0_ = {0};
 	g_return_if_fail (self != NULL);
-	gtk_text_buffer_get_start_iter ((GtkTextBuffer*) self, &iter);
+	gtk_text_buffer_get_start_iter ((GtkTextBuffer*) self, &_tmp0_);
+	iter = _tmp0_;
 	gtk_text_buffer_move_mark_by_name ((GtkTextBuffer*) self, "search_selected_start", &iter);
 	gtk_text_buffer_move_mark_by_name ((GtkTextBuffer*) self, "search_selected_end", &iter);
 }
 
 
 static void document_set_search_match_colors (Document* self, GtkTextTag* text_tag) {
+	GtkSourceStyleScheme* _tmp0_ = NULL;
+	GtkSourceStyleScheme* _tmp1_;
 	GtkSourceStyleScheme* style_scheme;
 	GtkSourceStyle* style;
-	gboolean _tmp1_ = FALSE;
-	gboolean _tmp2_ = FALSE;
-	gboolean _tmp3_;
-	gboolean _tmp8_ = FALSE;
-	gboolean _tmp9_;
-	gboolean _tmp14_ = FALSE;
-	gboolean _tmp15_;
-	PangoWeight _tmp20_ = 0;
-	gboolean _tmp21_ = FALSE;
-	gboolean _tmp22_;
-	PangoStyle _tmp24_ = 0;
-	gboolean _tmp25_ = FALSE;
-	gboolean _tmp26_;
-	PangoUnderline _tmp28_ = 0;
-	gboolean _tmp29_ = FALSE;
-	gboolean _tmp30_;
+	gboolean _tmp4_ = FALSE;
+	gboolean _tmp5_ = FALSE;
+	gboolean _tmp6_;
+	gboolean _tmp11_ = FALSE;
+	gboolean _tmp12_;
+	gboolean _tmp17_ = FALSE;
+	gboolean _tmp18_;
+	PangoWeight _tmp23_ = 0;
+	gboolean _tmp24_ = FALSE;
+	gboolean _tmp25_;
+	PangoStyle _tmp27_ = 0;
+	gboolean _tmp28_ = FALSE;
+	gboolean _tmp29_;
+	PangoUnderline _tmp31_ = 0;
 	gboolean _tmp32_ = FALSE;
 	gboolean _tmp33_;
+	gboolean _tmp35_ = FALSE;
+	gboolean _tmp36_;
 	g_return_if_fail (self != NULL);
 	g_return_if_fail (text_tag != NULL);
-	style_scheme = _g_object_ref0 (gtk_source_buffer_get_style_scheme ((GtkSourceBuffer*) self));
+	_tmp0_ = gtk_source_buffer_get_style_scheme ((GtkSourceBuffer*) self);
+	_tmp1_ = _g_object_ref0 (_tmp0_);
+	style_scheme = _tmp1_;
 	style = NULL;
 	if (style_scheme != NULL) {
-		GtkSourceStyle* _tmp0_;
-		style = (_tmp0_ = _g_object_ref0 (gtk_source_style_scheme_get_style (style_scheme, "search-match")), _g_object_unref0 (style), _tmp0_);
+		GtkSourceStyle* _tmp2_ = NULL;
+		GtkSourceStyle* _tmp3_;
+		_tmp2_ = gtk_source_style_scheme_get_style (style_scheme, "search-match");
+		_tmp3_ = _g_object_ref0 (_tmp2_);
+		_g_object_unref0 (style);
+		style = _tmp3_;
 	}
 	if (style_scheme == NULL) {
-		_tmp1_ = TRUE;
+		_tmp4_ = TRUE;
 	} else {
-		_tmp1_ = style == NULL;
+		_tmp4_ = style == NULL;
 	}
-	if (_tmp1_) {
+	if (_tmp4_) {
 		g_object_set (text_tag, "background", "#FFFF78", NULL);
 		_g_object_unref0 (style);
 		_g_object_unref0 (style_scheme);
 		return;
 	}
-	if ((g_object_get (style, "foreground-set", &_tmp3_, NULL), _tmp3_)) {
-		char* _tmp4_ = NULL;
-		char* _tmp5_;
-		_tmp2_ = (_tmp5_ = (g_object_get (style, "foreground", &_tmp4_, NULL), _tmp4_)) != NULL;
-		_g_free0 (_tmp5_);
+	g_object_get (style, "foreground-set", &_tmp6_, NULL);
+	if (_tmp6_) {
+		gchar* _tmp7_ = NULL;
+		gchar* _tmp8_;
+		g_object_get (style, "foreground", &_tmp7_, NULL);
+		_tmp8_ = _tmp7_;
+		_tmp5_ = _tmp8_ != NULL;
+		_g_free0 (_tmp8_);
 	} else {
-		_tmp2_ = FALSE;
-	}
-	if (_tmp2_) {
-		char* _tmp6_ = NULL;
-		char* _tmp7_;
-		g_object_set (text_tag, "foreground", _tmp7_ = (g_object_get (style, "foreground", &_tmp6_, NULL), _tmp6_), NULL);
-		_g_free0 (_tmp7_);
+		_tmp5_ = FALSE;
+	}
+	if (_tmp5_) {
+		gchar* _tmp9_ = NULL;
+		gchar* _tmp10_;
+		g_object_get (style, "foreground", &_tmp9_, NULL);
+		_tmp10_ = _tmp9_;
+		g_object_set (text_tag, "foreground", _tmp10_, NULL);
+		_g_free0 (_tmp10_);
 	} else {
 		g_object_set (text_tag, "foreground", NULL, NULL);
 	}
-	if ((g_object_get (style, "background-set", &_tmp9_, NULL), _tmp9_)) {
-		char* _tmp10_ = NULL;
-		char* _tmp11_;
-		_tmp8_ = (_tmp11_ = (g_object_get (style, "background", &_tmp10_, NULL), _tmp10_)) != NULL;
-		_g_free0 (_tmp11_);
+	g_object_get (style, "background-set", &_tmp12_, NULL);
+	if (_tmp12_) {
+		gchar* _tmp13_ = NULL;
+		gchar* _tmp14_;
+		g_object_get (style, "background", &_tmp13_, NULL);
+		_tmp14_ = _tmp13_;
+		_tmp11_ = _tmp14_ != NULL;
+		_g_free0 (_tmp14_);
 	} else {
-		_tmp8_ = FALSE;
-	}
-	if (_tmp8_) {
-		char* _tmp12_ = NULL;
-		char* _tmp13_;
-		g_object_set (text_tag, "background", _tmp13_ = (g_object_get (style, "background", &_tmp12_, NULL), _tmp12_), NULL);
-		_g_free0 (_tmp13_);
+		_tmp11_ = FALSE;
+	}
+	if (_tmp11_) {
+		gchar* _tmp15_ = NULL;
+		gchar* _tmp16_;
+		g_object_get (style, "background", &_tmp15_, NULL);
+		_tmp16_ = _tmp15_;
+		g_object_set (text_tag, "background", _tmp16_, NULL);
+		_g_free0 (_tmp16_);
 	} else {
 		g_object_set (text_tag, "background", NULL, NULL);
 	}
-	if ((g_object_get (style, "line-background-set", &_tmp15_, NULL), _tmp15_)) {
-		char* _tmp16_ = NULL;
-		char* _tmp17_;
-		_tmp14_ = (_tmp17_ = (g_object_get (style, "line-background", &_tmp16_, NULL), _tmp16_)) != NULL;
-		_g_free0 (_tmp17_);
+	g_object_get (style, "line-background-set", &_tmp18_, NULL);
+	if (_tmp18_) {
+		gchar* _tmp19_ = NULL;
+		gchar* _tmp20_;
+		g_object_get (style, "line-background", &_tmp19_, NULL);
+		_tmp20_ = _tmp19_;
+		_tmp17_ = _tmp20_ != NULL;
+		_g_free0 (_tmp20_);
 	} else {
-		_tmp14_ = FALSE;
-	}
-	if (_tmp14_) {
-		char* _tmp18_ = NULL;
-		char* _tmp19_;
-		g_object_set (text_tag, "paragraph-background", _tmp19_ = (g_object_get (style, "line-background", &_tmp18_, NULL), _tmp18_), NULL);
-		_g_free0 (_tmp19_);
+		_tmp17_ = FALSE;
+	}
+	if (_tmp17_) {
+		gchar* _tmp21_ = NULL;
+		gchar* _tmp22_;
+		g_object_get (style, "line-background", &_tmp21_, NULL);
+		_tmp22_ = _tmp21_;
+		g_object_set (text_tag, "paragraph-background", _tmp22_, NULL);
+		_g_free0 (_tmp22_);
 	} else {
 		g_object_set (text_tag, "paragraph-background", NULL, NULL);
 	}
-	if ((g_object_get (style, "bold-set", &_tmp22_, NULL), _tmp22_)) {
-		gboolean _tmp23_;
-		_tmp21_ = (g_object_get (style, "bold", &_tmp23_, NULL), _tmp23_);
+	g_object_get (style, "bold-set", &_tmp25_, NULL);
+	if (_tmp25_) {
+		gboolean _tmp26_;
+		g_object_get (style, "bold", &_tmp26_, NULL);
+		_tmp24_ = _tmp26_;
 	} else {
-		_tmp21_ = FALSE;
+		_tmp24_ = FALSE;
 	}
-	if (_tmp21_) {
-		_tmp20_ = PANGO_WEIGHT_BOLD;
+	if (_tmp24_) {
+		_tmp23_ = PANGO_WEIGHT_BOLD;
 	} else {
-		_tmp20_ = PANGO_WEIGHT_NORMAL;
+		_tmp23_ = PANGO_WEIGHT_NORMAL;
 	}
-	g_object_set (text_tag, "weight", (gint) _tmp20_, NULL);
-	if ((g_object_get (style, "italic-set", &_tmp26_, NULL), _tmp26_)) {
-		gboolean _tmp27_;
-		_tmp25_ = (g_object_get (style, "italic", &_tmp27_, NULL), _tmp27_);
+	g_object_set (text_tag, "weight", (gint) _tmp23_, NULL);
+	g_object_get (style, "italic-set", &_tmp29_, NULL);
+	if (_tmp29_) {
+		gboolean _tmp30_;
+		g_object_get (style, "italic", &_tmp30_, NULL);
+		_tmp28_ = _tmp30_;
 	} else {
-		_tmp25_ = FALSE;
+		_tmp28_ = FALSE;
 	}
-	if (_tmp25_) {
-		_tmp24_ = PANGO_STYLE_ITALIC;
+	if (_tmp28_) {
+		_tmp27_ = PANGO_STYLE_ITALIC;
 	} else {
-		_tmp24_ = PANGO_STYLE_NORMAL;
+		_tmp27_ = PANGO_STYLE_NORMAL;
 	}
-	g_object_set (text_tag, "style", _tmp24_, NULL);
-	if ((g_object_get (style, "underline-set", &_tmp30_, NULL), _tmp30_)) {
-		gboolean _tmp31_;
-		_tmp29_ = (g_object_get (style, "underline", &_tmp31_, NULL), _tmp31_);
+	g_object_set (text_tag, "style", _tmp27_, NULL);
+	g_object_get (style, "underline-set", &_tmp33_, NULL);
+	if (_tmp33_) {
+		gboolean _tmp34_;
+		g_object_get (style, "underline", &_tmp34_, NULL);
+		_tmp32_ = _tmp34_;
 	} else {
-		_tmp29_ = FALSE;
+		_tmp32_ = FALSE;
 	}
-	if (_tmp29_) {
-		_tmp28_ = PANGO_UNDERLINE_SINGLE;
+	if (_tmp32_) {
+		_tmp31_ = PANGO_UNDERLINE_SINGLE;
 	} else {
-		_tmp28_ = PANGO_UNDERLINE_NONE;
-	}
-	g_object_set (text_tag, "underline", _tmp28_, NULL);
-	if ((g_object_get (style, "strikethrough-set", &_tmp33_, NULL), _tmp33_)) {
-		gboolean _tmp34_;
-		_tmp32_ = (g_object_get (style, "strikethrough", &_tmp34_, NULL), _tmp34_);
+		_tmp31_ = PANGO_UNDERLINE_NONE;
+	}
+	g_object_set (text_tag, "underline", _tmp31_, NULL);
+	g_object_get (style, "strikethrough-set", &_tmp36_, NULL);
+	if (_tmp36_) {
+		gboolean _tmp37_;
+		g_object_get (style, "strikethrough", &_tmp37_, NULL);
+		_tmp35_ = _tmp37_;
 	} else {
-		_tmp32_ = FALSE;
+		_tmp35_ = FALSE;
 	}
-	g_object_set (text_tag, "strikethrough", _tmp32_, NULL);
+	g_object_set (text_tag, "strikethrough", _tmp35_, NULL);
 	_g_object_unref0 (style);
 	_g_object_unref0 (style_scheme);
 }
@@ -2111,53 +2828,79 @@ static void document_sync_found_tags (Document* self) {
 /****************
      *    REPLACE
      ****************/
-void document_replace (Document* self, const char* text) {
+void document_replace (Document* self, const gchar* text) {
 	GtkTextIter insert = {0};
 	GtkTextIter insert_prev = {0};
-	gboolean _tmp0_ = FALSE;
+	GtkTextMark* _tmp0_ = NULL;
+	GtkTextIter _tmp1_ = {0};
+	gboolean _tmp2_ = FALSE;
+	gboolean _tmp3_;
 	GtkTextIter start = {0};
 	GtkTextIter end = {0};
+	GtkTextMark* _tmp5_ = NULL;
+	GtkTextIter _tmp6_ = {0};
+	GtkTextMark* _tmp7_ = NULL;
+	GtkTextIter _tmp8_ = {0};
+	gboolean _tmp9_;
 	g_return_if_fail (self != NULL);
 	g_return_if_fail (text != NULL);
 	g_return_if_fail (self->priv->search_text != NULL);
 	g_return_if_fail (!self->priv->_readonly);
-	gtk_text_buffer_get_iter_at_mark ((GtkTextBuffer*) self, &insert, gtk_text_buffer_get_insert ((GtkTextBuffer*) self));
+	_tmp0_ = gtk_text_buffer_get_insert ((GtkTextBuffer*) self);
+	gtk_text_buffer_get_iter_at_mark ((GtkTextBuffer*) self, &_tmp1_, _tmp0_);
+	insert = _tmp1_;
 	insert_prev = insert;
 	gtk_text_iter_backward_char (&insert_prev);
-	if (!gtk_text_iter_has_tag (&insert, self->priv->found_tag_selected)) {
-		_tmp0_ = !gtk_text_iter_has_tag (&insert_prev, self->priv->found_tag_selected);
+	_tmp3_ = gtk_text_iter_has_tag (&insert, self->priv->found_tag_selected);
+	if (!_tmp3_) {
+		gboolean _tmp4_;
+		_tmp4_ = gtk_text_iter_has_tag (&insert_prev, self->priv->found_tag_selected);
+		_tmp2_ = !_tmp4_;
 	} else {
-		_tmp0_ = FALSE;
+		_tmp2_ = FALSE;
 	}
-	if (_tmp0_) {
+	if (_tmp2_) {
 		document_search_forward (self);
 		return;
 	}
-	gtk_text_buffer_get_iter_at_mark ((GtkTextBuffer*) self, &start, gtk_text_buffer_get_mark ((GtkTextBuffer*) self, "search_selected_start"));
-	gtk_text_buffer_get_iter_at_mark ((GtkTextBuffer*) self, &end, gtk_text_buffer_get_mark ((GtkTextBuffer*) self, "search_selected_end"));
+	_tmp5_ = gtk_text_buffer_get_mark ((GtkTextBuffer*) self, "search_selected_start");
+	gtk_text_buffer_get_iter_at_mark ((GtkTextBuffer*) self, &_tmp6_, _tmp5_);
+	start = _tmp6_;
+	_tmp7_ = gtk_text_buffer_get_mark ((GtkTextBuffer*) self, "search_selected_end");
+	gtk_text_buffer_get_iter_at_mark ((GtkTextBuffer*) self, &_tmp8_, _tmp7_);
+	end = _tmp8_;
 	gtk_text_buffer_begin_user_action ((GtkTextBuffer*) self);
 	gtk_text_buffer_delete ((GtkTextBuffer*) self, &start, &end);
 	document_insert (self, &start, text, -1);
 	gtk_text_buffer_end_user_action ((GtkTextBuffer*) self);
-	if (!gtk_text_iter_has_tag (&start, self->priv->found_tag_selected)) {
+	_tmp9_ = gtk_text_iter_has_tag (&start, self->priv->found_tag_selected);
+	if (!_tmp9_) {
 		document_search_forward (self);
 	}
 }
 
 
-void document_replace_all (Document* self, const char* text) {
+void document_replace_all (Document* self, const gchar* text) {
 	GtkTextIter start = {0};
 	GtkTextIter match_start = {0};
 	GtkTextIter match_end = {0};
+	GtkTextIter _tmp0_ = {0};
 	g_return_if_fail (self != NULL);
 	g_return_if_fail (text != NULL);
 	g_return_if_fail (self->priv->search_text != NULL);
 	g_return_if_fail (!self->priv->_readonly);
-	gtk_text_buffer_get_start_iter ((GtkTextBuffer*) self, &start);
+	gtk_text_buffer_get_start_iter ((GtkTextBuffer*) self, &_tmp0_);
+	start = _tmp0_;
 	self->priv->stop_cursor_moved_emission = TRUE;
 	gtk_text_buffer_begin_user_action ((GtkTextBuffer*) self);
 	while (TRUE) {
-		if (!document_iter_forward_search (self, &start, NULL, &match_start, &match_end)) {
+		GtkTextIter _tmp1_ = {0};
+		GtkTextIter _tmp2_ = {0};
+		gboolean _tmp3_;
+		_tmp3_ = document_iter_forward_search (self, &start, NULL, &_tmp1_, &_tmp2_);
+		match_start = _tmp1_;
+		match_end = _tmp2_;
+		if (!_tmp3_) {
 			break;
 		}
 		gtk_text_buffer_delete ((GtkTextBuffer*) self, &match_start, &match_end);
@@ -2181,7 +2924,9 @@ GFile* document_get_location (Document* self) {
 void document_set_location (Document* self, GFile* value) {
 	GFile* _tmp0_;
 	g_return_if_fail (self != NULL);
-	self->priv->_location = (_tmp0_ = _g_object_ref0 (value), _g_object_unref0 (self->priv->_location), _tmp0_);
+	_tmp0_ = _g_object_ref0 (value);
+	_g_object_unref0 (self->priv->_location);
+	self->priv->_location = _tmp0_;
 	g_object_notify ((GObject *) self, "location");
 }
 
@@ -2201,21 +2946,6 @@ void document_set_readonly (Document* self, gboolean value) {
 }
 
 
-guint document_get_unsaved_document_n (Document* self) {
-	guint result;
-	g_return_val_if_fail (self != NULL, 0U);
-	result = self->priv->_unsaved_document_n;
-	return result;
-}
-
-
-void document_set_unsaved_document_n (Document* self, guint value) {
-	g_return_if_fail (self != NULL);
-	self->priv->_unsaved_document_n = value;
-	g_object_notify ((GObject *) self, "unsaved-document-n");
-}
-
-
 gint document_get_project_id (Document* self) {
 	gint result;
 	g_return_val_if_fail (self != NULL, 0);
@@ -2231,15 +2961,33 @@ void document_set_project_id (Document* self, gint value) {
 }
 
 
+static void g_cclosure_user_marshal_VOID__BOOLEAN_UINT_UINT (GClosure * closure, GValue * return_value, guint n_param_values, const GValue * param_values, gpointer invocation_hint, gpointer marshal_data) {
+	typedef void (*GMarshalFunc_VOID__BOOLEAN_UINT_UINT) (gpointer data1, gboolean arg_1, guint arg_2, guint arg_3, gpointer data2);
+	register GMarshalFunc_VOID__BOOLEAN_UINT_UINT callback;
+	register GCClosure * cc;
+	register gpointer data1, data2;
+	cc = (GCClosure *) closure;
+	g_return_if_fail (n_param_values == 4);
+	if (G_CCLOSURE_SWAP_DATA (closure)) {
+		data1 = closure->data;
+		data2 = param_values->data[0].v_pointer;
+	} else {
+		data1 = param_values->data[0].v_pointer;
+		data2 = closure->data;
+	}
+	callback = (GMarshalFunc_VOID__BOOLEAN_UINT_UINT) (marshal_data ? marshal_data : cc->callback);
+	callback (data1, g_value_get_boolean (param_values + 1), g_value_get_uint (param_values + 2), g_value_get_uint (param_values + 3), data2);
+}
+
+
 static void document_class_init (DocumentClass * klass) {
 	document_parent_class = g_type_class_peek_parent (klass);
 	g_type_class_add_private (klass, sizeof (DocumentPrivate));
-	G_OBJECT_CLASS (klass)->get_property = document_get_property;
-	G_OBJECT_CLASS (klass)->set_property = document_set_property;
+	G_OBJECT_CLASS (klass)->get_property = _vala_document_get_property;
+	G_OBJECT_CLASS (klass)->set_property = _vala_document_set_property;
 	G_OBJECT_CLASS (klass)->finalize = document_finalize;
 	g_object_class_install_property (G_OBJECT_CLASS (klass), DOCUMENT_LOCATION, g_param_spec_object ("location", "location", "location", G_TYPE_FILE, G_PARAM_STATIC_NAME | G_PARAM_STATIC_NICK | G_PARAM_STATIC_BLURB | G_PARAM_READABLE | G_PARAM_WRITABLE));
 	g_object_class_install_property (G_OBJECT_CLASS (klass), DOCUMENT_READONLY, g_param_spec_boolean ("readonly", "readonly", "readonly", FALSE, G_PARAM_STATIC_NAME | G_PARAM_STATIC_NICK | G_PARAM_STATIC_BLURB | G_PARAM_READABLE | G_PARAM_WRITABLE));
-	g_object_class_install_property (G_OBJECT_CLASS (klass), DOCUMENT_UNSAVED_DOCUMENT_N, g_param_spec_uint ("unsaved-document-n", "unsaved-document-n", "unsaved-document-n", 0, G_MAXUINT, 0U, G_PARAM_STATIC_NAME | G_PARAM_STATIC_NICK | G_PARAM_STATIC_BLURB | G_PARAM_READABLE | G_PARAM_WRITABLE));
 	g_object_class_install_property (G_OBJECT_CLASS (klass), DOCUMENT_PROJECT_ID, g_param_spec_int ("project-id", "project-id", "project-id", G_MININT, G_MAXINT, -1, G_PARAM_STATIC_NAME | G_PARAM_STATIC_NICK | G_PARAM_STATIC_BLURB | G_PARAM_READABLE | G_PARAM_WRITABLE));
 	g_signal_new ("search_info_updated", TYPE_DOCUMENT, G_SIGNAL_RUN_LAST, 0, NULL, NULL, g_cclosure_user_marshal_VOID__BOOLEAN_UINT_UINT, G_TYPE_NONE, 3, G_TYPE_BOOLEAN, G_TYPE_UINT, G_TYPE_UINT);
 	g_signal_new ("cursor_moved", TYPE_DOCUMENT, G_SIGNAL_RUN_LAST, 0, NULL, NULL, g_cclosure_marshal_VOID__VOID, G_TYPE_NONE, 0);
@@ -2249,6 +2997,7 @@ static void document_class_init (DocumentClass * klass) {
 static void document_instance_init (Document * self) {
 	self->priv = DOCUMENT_GET_PRIVATE (self);
 	self->priv->_readonly = FALSE;
+	self->_unsaved_doc_num = (guint) 0;
 	self->priv->_project_id = -1;
 	self->priv->backup_made = FALSE;
 	self->priv->encoding = NULL;
@@ -2283,7 +3032,7 @@ GType document_get_type (void) {
 }
 
 
-static void document_get_property (GObject * object, guint property_id, GValue * value, GParamSpec * pspec) {
+static void _vala_document_get_property (GObject * object, guint property_id, GValue * value, GParamSpec * pspec) {
 	Document * self;
 	self = DOCUMENT (object);
 	switch (property_id) {
@@ -2293,9 +3042,6 @@ static void document_get_property (GObject * object, guint property_id, GValue *
 		case DOCUMENT_READONLY:
 		g_value_set_boolean (value, document_get_readonly (self));
 		break;
-		case DOCUMENT_UNSAVED_DOCUMENT_N:
-		g_value_set_uint (value, document_get_unsaved_document_n (self));
-		break;
 		case DOCUMENT_PROJECT_ID:
 		g_value_set_int (value, document_get_project_id (self));
 		break;
@@ -2306,7 +3052,7 @@ static void document_get_property (GObject * object, guint property_id, GValue *
 }
 
 
-static void document_set_property (GObject * object, guint property_id, const GValue * value, GParamSpec * pspec) {
+static void _vala_document_set_property (GObject * object, guint property_id, const GValue * value, GParamSpec * pspec) {
 	Document * self;
 	self = DOCUMENT (object);
 	switch (property_id) {
@@ -2316,9 +3062,6 @@ static void document_set_property (GObject * object, guint property_id, const GV
 		case DOCUMENT_READONLY:
 		document_set_readonly (self, g_value_get_boolean (value));
 		break;
-		case DOCUMENT_UNSAVED_DOCUMENT_N:
-		document_set_unsaved_document_n (self, g_value_get_uint (value));
-		break;
 		case DOCUMENT_PROJECT_ID:
 		document_set_project_id (self, g_value_get_int (value));
 		break;
@@ -2359,35 +3102,4 @@ static gint _vala_array_length (gpointer array) {
 }
 
 
-static int _vala_strcmp0 (const char * str1, const char * str2) {
-	if (str1 == NULL) {
-		return -(str1 != str2);
-	}
-	if (str2 == NULL) {
-		return str1 != str2;
-	}
-	return strcmp (str1, str2);
-}
-
-
-
-static void g_cclosure_user_marshal_VOID__BOOLEAN_UINT_UINT (GClosure * closure, GValue * return_value, guint n_param_values, const GValue * param_values, gpointer invocation_hint, gpointer marshal_data) {
-	typedef void (*GMarshalFunc_VOID__BOOLEAN_UINT_UINT) (gpointer data1, gboolean arg_1, guint arg_2, guint arg_3, gpointer data2);
-	register GMarshalFunc_VOID__BOOLEAN_UINT_UINT callback;
-	register GCClosure * cc;
-	register gpointer data1, data2;
-	cc = (GCClosure *) closure;
-	g_return_if_fail (n_param_values == 4);
-	if (G_CCLOSURE_SWAP_DATA (closure)) {
-		data1 = closure->data;
-		data2 = param_values->data[0].v_pointer;
-	} else {
-		data1 = param_values->data[0].v_pointer;
-		data2 = closure->data;
-	}
-	callback = (GMarshalFunc_VOID__BOOLEAN_UINT_UINT) (marshal_data ? marshal_data : cc->callback);
-	callback (data1, g_value_get_boolean (param_values + 1), g_value_get_uint (param_values + 2), g_value_get_uint (param_values + 3), data2);
-}
-
-
 
diff --git a/src/C/document_tab.c b/src/C/document_tab.c
index a384f44..111fd13 100644
--- a/src/C/document_tab.c
+++ b/src/C/document_tab.c
@@ -1,4 +1,4 @@
-/* document_tab.c generated by valac 0.10.3, the Vala compiler
+/* document_tab.c generated by valac 0.12.1, the Vala compiler
  * generated from document_tab.vala, do not modify */
 
 /*
@@ -116,6 +116,7 @@ struct _Document {
 	GtkSourceBuffer parent_instance;
 	DocumentPrivate * priv;
 	DocumentTab* tab;
+	guint _unsaved_doc_num;
 };
 
 struct _DocumentClass {
@@ -184,14 +185,14 @@ static gboolean document_tab_install_auto_save_timeout_if_needed (DocumentTab* s
 static void _lambda20_ (DocumentTab* self);
 static void __lambda20__g_object_notify (GObject* _sender, GParamSpec* pspec, gpointer self);
 GType tab_info_bar_get_type (void) G_GNUC_CONST;
-TabInfoBar* document_tab_add_message (DocumentTab* self, const char* primary_msg, const char* secondary_msg, GtkMessageType msg_type);
-TabInfoBar* tab_info_bar_new (const char* primary_msg, const char* secondary_msg, GtkMessageType msg_type);
-TabInfoBar* tab_info_bar_construct (GType object_type, const char* primary_msg, const char* secondary_msg, GtkMessageType msg_type);
-char* utils_str_middle_truncate (const char* str, guint max_length);
-char* document_get_short_name_for_display (Document* self);
-static void document_tab_set_label_text (DocumentTab* self, const char* value);
+TabInfoBar* document_tab_add_message (DocumentTab* self, const gchar* primary_msg, const gchar* secondary_msg, GtkMessageType msg_type);
+TabInfoBar* tab_info_bar_new (const gchar* primary_msg, const gchar* secondary_msg, GtkMessageType msg_type);
+TabInfoBar* tab_info_bar_construct (GType object_type, const gchar* primary_msg, const gchar* secondary_msg, GtkMessageType msg_type);
+gchar* utils_str_middle_truncate (const gchar* str, guint max_length);
+gchar* document_get_short_name_for_display (Document* self);
+static void document_tab_set_label_text (DocumentTab* self, const gchar* value);
 GFile* document_get_location (Document* self);
-char* document_get_uri_for_display (Document* self);
+gchar* document_get_uri_for_display (Document* self);
 gint document_get_project_id (Document* self);
 gpointer projects_ref (gpointer instance);
 void projects_unref (gpointer instance);
@@ -207,17 +208,17 @@ void project_free (Project* self);
 void project_copy (const Project* self, Project* dest);
 void project_destroy (Project* self);
 Project* projects_get (Projects* self, gint id);
-char* utils_replace_home_dir_with_tilde (const char* uri);
-char* document_tab_get_name (DocumentTab* self);
-const char* document_tab_get_label_text (DocumentTab* self);
-char* document_tab_get_menu_tip (DocumentTab* self);
+gchar* utils_replace_home_dir_with_tilde (const gchar* uri);
+gchar* document_tab_get_name (DocumentTab* self);
+const gchar* document_tab_get_label_text (DocumentTab* self);
+gchar* document_tab_get_menu_tip (DocumentTab* self);
 gboolean document_is_local (Document* self);
 gboolean document_is_externally_modified (Document* self);
-void tab_info_bar_add_stock_button_with_text (TabInfoBar* self, const char* text, const char* stock_id, gint response_id);
-static void _lambda18_ (gint response_id, Block20Data* _data20_);
-static void __lambda18__gtk_info_bar_response (GtkInfoBar* _sender, gint response_id, gpointer self);
 static Block20Data* block20_data_ref (Block20Data* _data20_);
 static void block20_data_unref (Block20Data* _data20_);
+void tab_info_bar_add_stock_button_with_text (TabInfoBar* self, const gchar* text, const gchar* stock_id, gint response_id);
+static void _lambda18_ (gint response_id, Block20Data* _data20_);
+static void __lambda18__gtk_info_bar_response (GtkInfoBar* _sender, gint response_id, gpointer self);
 static void document_tab_install_auto_save_timeout (DocumentTab* self);
 gboolean document_tab_get_auto_save (DocumentTab* self);
 guint document_tab_get_auto_save_interval (DocumentTab* self);
@@ -228,20 +229,25 @@ static void document_tab_remove_auto_save_timeout (DocumentTab* self);
 void document_save (Document* self, gboolean check_file_changed_on_disk, gboolean force);
 GtkHBox* document_tab_get_label (DocumentTab* self);
 static void document_tab_finalize (GObject* obj);
-static void document_tab_get_property (GObject * object, guint property_id, GValue * value, GParamSpec * pspec);
-static void document_tab_set_property (GObject * object, guint property_id, const GValue * value, GParamSpec * pspec);
-
+static void _vala_document_tab_get_property (GObject * object, guint property_id, GValue * value, GParamSpec * pspec);
+static void _vala_document_tab_set_property (GObject * object, guint property_id, const GValue * value, GParamSpec * pspec);
 
 
 DocumentTab* document_tab_construct (GType object_type) {
-	DocumentTab * self;
-	Document* _tmp0_;
-	DocumentView* _tmp1_;
-	self = g_object_newv (object_type, 0, NULL);
-	document_tab_set_document (self, _tmp0_ = document_new ());
-	_g_object_unref0 (_tmp0_);
-	document_tab_set_view (self, _tmp1_ = g_object_ref_sink (document_view_new (self->priv->_document)));
+	DocumentTab * self = NULL;
+	Document* _tmp0_ = NULL;
+	Document* _tmp1_;
+	DocumentView* _tmp2_ = NULL;
+	DocumentView* _tmp3_;
+	self = (DocumentTab*) g_object_new (object_type, NULL);
+	_tmp0_ = document_new ();
+	_tmp1_ = _tmp0_;
+	document_tab_set_document (self, _tmp1_);
 	_g_object_unref0 (_tmp1_);
+	_tmp2_ = document_view_new (self->priv->_document);
+	_tmp3_ = g_object_ref_sink (_tmp2_);
+	document_tab_set_view (self, _tmp3_);
+	_g_object_unref0 (_tmp3_);
 	document_tab_initialize (self);
 	return self;
 }
@@ -267,11 +273,13 @@ DocumentTab* document_tab_new_from_location (GFile* location) {
 
 
 DocumentTab* document_tab_construct_with_view (GType object_type, DocumentView* view) {
-	DocumentTab * self;
+	DocumentTab * self = NULL;
+	GtkTextBuffer* _tmp0_ = NULL;
 	g_return_val_if_fail (view != NULL, NULL);
-	self = g_object_newv (object_type, 0, NULL);
+	self = (DocumentTab*) g_object_new (object_type, NULL);
 	document_tab_set_view (self, view);
-	document_tab_set_document (self, DOCUMENT (gtk_text_view_get_buffer ((GtkTextView*) view)));
+	_tmp0_ = gtk_text_view_get_buffer ((GtkTextView*) view);
+	document_tab_set_document (self, DOCUMENT (_tmp0_));
 	document_tab_initialize (self);
 	return self;
 }
@@ -309,10 +317,11 @@ static void _document_tab_update_label_text_g_object_notify (GObject* _sender, G
 
 
 static void _lambda17_ (GtkTextBuffer* s, DocumentTab* self) {
-	const char* _tmp0_;
+	const gchar* _tmp0_ = NULL;
+	gboolean _tmp1_;
 	g_return_if_fail (s != NULL);
-	_tmp0_ = NULL;
-	if (document_get_modified (self->priv->_document)) {
+	_tmp1_ = document_get_modified (self->priv->_document);
+	if (_tmp1_) {
 		_tmp0_ = "*";
 	} else {
 		_tmp0_ = "";
@@ -358,21 +367,30 @@ static void __lambda20__g_object_notify (GObject* _sender, GParamSpec* pspec, gp
 static void document_tab_initialize (DocumentTab* self) {
 	gboolean reparent;
 	DocumentTab* _tmp0_;
+	GtkScrolledWindow* _tmp1_ = NULL;
 	GtkScrolledWindow* sw;
+	GtkButton* _tmp2_ = NULL;
 	GtkButton* close_button;
-	GtkImage* _tmp1_;
-	GtkHBox* _tmp2_;
+	const gchar* _tmp3_ = NULL;
+	GtkImage* _tmp4_ = NULL;
+	GtkImage* _tmp5_;
+	GtkHBox* _tmp6_ = NULL;
+	GSettings* _tmp7_ = NULL;
 	GSettings* settings;
+	gboolean _tmp8_;
 	guint tmp = 0U;
 	g_return_if_fail (self != NULL);
 	reparent = self->priv->_document->tab != NULL;
-	self->priv->_document->tab = (_tmp0_ = _g_object_ref0 (self), _g_object_unref0 (self->priv->_document->tab), _tmp0_);
+	_tmp0_ = _g_object_ref0 (self);
+	_g_object_unref0 (self->priv->_document->tab);
+	self->priv->_document->tab = _tmp0_;
 	g_signal_connect_object ((GObject*) self->priv->_document, "notify::location", (GCallback) __lambda16__g_object_notify, self, 0);
 	g_signal_connect_object ((GObject*) self->priv->_document, "notify::project-id", (GCallback) _document_tab_update_label_tooltip_g_object_notify, self, 0);
 	g_signal_connect_object ((GObject*) self->priv->_document, "notify::unsaved-document-n", (GCallback) _document_tab_update_label_text_g_object_notify, self, 0);
 	g_signal_connect_object ((GtkTextBuffer*) self->priv->_document, "modified-changed", (GCallback) __lambda17__gtk_text_buffer_modified_changed, self, 0);
 	g_signal_connect_object ((GtkWidget*) self->priv->_view, "focus-in-event", (GCallback) _document_tab_view_focused_in_gtk_widget_focus_in_event, self, 0);
-	sw = g_object_ref_sink ((GtkScrolledWindow*) gtk_scrolled_window_new (NULL, NULL));
+	_tmp1_ = (GtkScrolledWindow*) gtk_scrolled_window_new (NULL, NULL);
+	sw = g_object_ref_sink (_tmp1_);
 	gtk_scrolled_window_set_policy (sw, GTK_POLICY_AUTOMATIC, GTK_POLICY_AUTOMATIC);
 	if (reparent) {
 		gtk_widget_reparent ((GtkWidget*) self->priv->_view, (GtkWidget*) sw);
@@ -382,22 +400,30 @@ static void document_tab_initialize (DocumentTab* self) {
 	gtk_widget_show_all ((GtkWidget*) sw);
 	gtk_box_pack_end ((GtkBox*) self, (GtkWidget*) sw, TRUE, TRUE, (guint) 0);
 	document_tab_update_label_text (self);
-	close_button = g_object_ref_sink ((GtkButton*) gtk_button_new ());
+	_tmp2_ = (GtkButton*) gtk_button_new ();
+	close_button = g_object_ref_sink (_tmp2_);
 	gtk_button_set_relief (close_button, GTK_RELIEF_NONE);
 	gtk_button_set_focus_on_click (close_button, FALSE);
 	gtk_widget_set_name ((GtkWidget*) close_button, "my-close-button");
-	gtk_widget_set_tooltip_text ((GtkWidget*) close_button, _ ("Close document"));
-	gtk_container_add ((GtkContainer*) close_button, (GtkWidget*) (_tmp1_ = g_object_ref_sink ((GtkImage*) gtk_image_new_from_stock (GTK_STOCK_CLOSE, GTK_ICON_SIZE_MENU))));
-	_g_object_unref0 (_tmp1_);
+	_tmp3_ = _ ("Close document");
+	gtk_widget_set_tooltip_text ((GtkWidget*) close_button, _tmp3_);
+	_tmp4_ = (GtkImage*) gtk_image_new_from_stock (GTK_STOCK_CLOSE, GTK_ICON_SIZE_MENU);
+	_tmp5_ = g_object_ref_sink (_tmp4_);
+	gtk_container_add ((GtkContainer*) close_button, (GtkWidget*) _tmp5_);
+	_g_object_unref0 (_tmp5_);
 	g_signal_connect_object (close_button, "clicked", (GCallback) __lambda19__gtk_button_clicked, self, 0);
-	self->priv->_label = (_tmp2_ = g_object_ref_sink ((GtkHBox*) gtk_hbox_new (FALSE, 0)), _g_object_unref0 (self->priv->_label), _tmp2_);
+	_tmp6_ = (GtkHBox*) gtk_hbox_new (FALSE, 0);
+	_g_object_unref0 (self->priv->_label);
+	self->priv->_label = g_object_ref_sink (_tmp6_);
 	gtk_box_pack_start ((GtkBox*) self->priv->_label, (GtkWidget*) self->priv->_label_mark, FALSE, FALSE, (guint) 0);
 	gtk_box_pack_start ((GtkBox*) self->priv->_label, (GtkWidget*) self->priv->_label_text, TRUE, FALSE, (guint) 0);
 	gtk_box_pack_start ((GtkBox*) self->priv->_label, (GtkWidget*) close_button, FALSE, FALSE, (guint) 0);
 	document_tab_update_label_tooltip (self);
 	gtk_widget_show_all ((GtkWidget*) self->priv->_label);
-	settings = g_settings_new ("org.gnome.latexila.preferences.editor");
-	document_tab_set_auto_save (self, g_settings_get_boolean (settings, "auto-save"));
+	_tmp7_ = g_settings_new ("org.gnome.latexila.preferences.editor");
+	settings = _tmp7_;
+	_tmp8_ = g_settings_get_boolean (settings, "auto-save");
+	document_tab_set_auto_save (self, _tmp8_);
 	g_settings_get (settings, "auto-save-interval", "u", &tmp);
 	document_tab_set_auto_save_interval (self, tmp);
 	document_tab_install_auto_save_timeout_if_needed (self);
@@ -408,13 +434,15 @@ static void document_tab_initialize (DocumentTab* self) {
 }
 
 
-TabInfoBar* document_tab_add_message (DocumentTab* self, const char* primary_msg, const char* secondary_msg, GtkMessageType msg_type) {
+TabInfoBar* document_tab_add_message (DocumentTab* self, const gchar* primary_msg, const gchar* secondary_msg, GtkMessageType msg_type) {
 	TabInfoBar* result = NULL;
+	TabInfoBar* _tmp0_ = NULL;
 	TabInfoBar* infobar;
 	g_return_val_if_fail (self != NULL, NULL);
 	g_return_val_if_fail (primary_msg != NULL, NULL);
 	g_return_val_if_fail (secondary_msg != NULL, NULL);
-	infobar = g_object_ref_sink (tab_info_bar_new (primary_msg, secondary_msg, msg_type));
+	_tmp0_ = tab_info_bar_new (primary_msg, secondary_msg, msg_type);
+	infobar = g_object_ref_sink (_tmp0_);
 	gtk_box_pack_start ((GtkBox*) self, (GtkWidget*) infobar, FALSE, FALSE, (guint) 0);
 	result = infobar;
 	return result;
@@ -422,54 +450,115 @@ TabInfoBar* document_tab_add_message (DocumentTab* self, const char* primary_msg
 
 
 static void document_tab_update_label_text (DocumentTab* self) {
-	char* _tmp0_;
-	char* _tmp1_;
+	gchar* _tmp0_ = NULL;
+	gchar* _tmp1_;
+	gchar* _tmp2_ = NULL;
+	gchar* _tmp3_;
 	g_return_if_fail (self != NULL);
-	document_tab_set_label_text (self, _tmp1_ = utils_str_middle_truncate (_tmp0_ = document_get_short_name_for_display (self->priv->_document), (guint) 42));
+	_tmp0_ = document_get_short_name_for_display (self->priv->_document);
+	_tmp1_ = _tmp0_;
+	_tmp2_ = utils_str_middle_truncate (_tmp1_, (guint) 42);
+	_tmp3_ = _tmp2_;
+	document_tab_set_label_text (self, _tmp3_);
+	_g_free0 (_tmp3_);
 	_g_free0 (_tmp1_);
-	_g_free0 (_tmp0_);
 }
 
 
 static void document_tab_update_label_tooltip (DocumentTab* self) {
+	GFile* _tmp0_ = NULL;
 	g_return_if_fail (self != NULL);
-	if (document_get_location (self->priv->_document) == NULL) {
+	_tmp0_ = document_get_location (self->priv->_document);
+	if (_tmp0_ == NULL) {
 		gtk_widget_set_tooltip_markup ((GtkWidget*) self->priv->_label, "");
 	} else {
-		char* _tmp0_;
-		gtk_widget_set_tooltip_markup ((GtkWidget*) self->priv->_label, _tmp0_ = document_get_uri_for_display (self->priv->_document));
-		_g_free0 (_tmp0_);
-		if (document_get_project_id (self->priv->_document) != (-1)) {
-			Projects* _tmp1_;
-			Project* _tmp2_;
+		gchar* _tmp1_ = NULL;
+		gchar* _tmp2_;
+		gint _tmp3_;
+		_tmp1_ = document_get_uri_for_display (self->priv->_document);
+		_tmp2_ = _tmp1_;
+		gtk_widget_set_tooltip_markup ((GtkWidget*) self->priv->_label, _tmp2_);
+		_g_free0 (_tmp2_);
+		_tmp3_ = document_get_project_id (self->priv->_document);
+		if (_tmp3_ != (-1)) {
+			Projects* _tmp4_ = NULL;
+			Projects* _tmp5_;
+			gint _tmp6_;
+			Project* _tmp7_ = NULL;
+			Project* _tmp8_;
 			Project* project;
-			project = (_tmp2_ = projects_get (_tmp1_ = projects_get_default (), document_get_project_id (self->priv->_document)), _projects_unref0 (_tmp1_), _tmp2_);
+			GFile* _tmp9_ = NULL;
+			gboolean _tmp10_;
+			_tmp4_ = projects_get_default ();
+			_tmp5_ = _tmp4_;
+			_tmp6_ = document_get_project_id (self->priv->_document);
+			_tmp7_ = projects_get (_tmp5_, _tmp6_);
+			_tmp8_ = _tmp7_;
+			_projects_unref0 (_tmp5_);
+			project = _tmp8_;
 			if (project == NULL) {
 				_project_free0 (project);
 				return;
 			}
-			if (g_file_equal ((*project).main_file, document_get_location (self->priv->_document))) {
-				char* _tmp3_;
-				char* _tmp4_;
-				char* _tmp5_;
-				gtk_widget_set_tooltip_markup ((GtkWidget*) self->priv->_label, _tmp5_ = g_strconcat (gtk_widget_get_tooltip_markup ((GtkWidget*) self->priv->_label), _tmp4_ = g_strconcat (_tmp3_ = g_strconcat ("\n<b>", _ ("Main File"), NULL), "</b>", NULL), NULL));
-				_g_free0 (_tmp5_);
-				_g_free0 (_tmp4_);
-				_g_free0 (_tmp3_);
+			_tmp9_ = document_get_location (self->priv->_document);
+			_tmp10_ = g_file_equal ((*project).main_file, _tmp9_);
+			if (_tmp10_) {
+				const gchar* _tmp11_ = NULL;
+				const gchar* _tmp12_ = NULL;
+				gchar* _tmp13_;
+				gchar* _tmp14_;
+				gchar* _tmp15_;
+				gchar* _tmp16_;
+				gchar* _tmp17_;
+				gchar* _tmp18_;
+				_tmp11_ = gtk_widget_get_tooltip_markup ((GtkWidget*) self->priv->_label);
+				_tmp12_ = _ ("Main File");
+				_tmp13_ = g_strconcat ("\n<b>", _tmp12_, NULL);
+				_tmp14_ = _tmp13_;
+				_tmp15_ = g_strconcat (_tmp14_, "</b>", NULL);
+				_tmp16_ = _tmp15_;
+				_tmp17_ = g_strconcat (_tmp11_, _tmp16_, NULL);
+				_tmp18_ = _tmp17_;
+				gtk_widget_set_tooltip_markup ((GtkWidget*) self->priv->_label, _tmp18_);
+				_g_free0 (_tmp18_);
+				_g_free0 (_tmp16_);
+				_g_free0 (_tmp14_);
 			} else {
-				char* _tmp6_;
-				char* _tmp7_;
-				char* _tmp8_;
-				char* _tmp9_;
-				char* _tmp10_;
-				char* _tmp11_;
-				gtk_widget_set_tooltip_markup ((GtkWidget*) self->priv->_label, _tmp11_ = g_strconcat (gtk_widget_get_tooltip_markup ((GtkWidget*) self->priv->_label), _tmp10_ = g_strconcat (_tmp7_ = g_strconcat (_tmp6_ = g_strconcat ("\n<b>", _ ("Main File:"), NULL), "</b> ", NULL), _tmp9_ = utils_replace_home_dir_with_tilde (_tmp8_ = g_file_get_parse_name ((*project).main_file)), NULL), NULL));
-				_g_free0 (_tmp11_);
-				_g_free0 (_tmp10_);
-				_g_free0 (_tmp9_);
-				_g_free0 (_tmp8_);
-				_g_free0 (_tmp7_);
-				_g_free0 (_tmp6_);
+				const gchar* _tmp19_ = NULL;
+				const gchar* _tmp20_ = NULL;
+				gchar* _tmp21_;
+				gchar* _tmp22_;
+				gchar* _tmp23_;
+				gchar* _tmp24_;
+				gchar* _tmp25_ = NULL;
+				gchar* _tmp26_;
+				gchar* _tmp27_ = NULL;
+				gchar* _tmp28_;
+				gchar* _tmp29_;
+				gchar* _tmp30_;
+				gchar* _tmp31_;
+				gchar* _tmp32_;
+				_tmp19_ = gtk_widget_get_tooltip_markup ((GtkWidget*) self->priv->_label);
+				_tmp20_ = _ ("Main File:");
+				_tmp21_ = g_strconcat ("\n<b>", _tmp20_, NULL);
+				_tmp22_ = _tmp21_;
+				_tmp23_ = g_strconcat (_tmp22_, "</b> ", NULL);
+				_tmp24_ = _tmp23_;
+				_tmp25_ = g_file_get_parse_name ((*project).main_file);
+				_tmp26_ = _tmp25_;
+				_tmp27_ = utils_replace_home_dir_with_tilde (_tmp26_);
+				_tmp28_ = _tmp27_;
+				_tmp29_ = g_strconcat (_tmp24_, _tmp28_, NULL);
+				_tmp30_ = _tmp29_;
+				_tmp31_ = g_strconcat (_tmp19_, _tmp30_, NULL);
+				_tmp32_ = _tmp31_;
+				gtk_widget_set_tooltip_markup ((GtkWidget*) self->priv->_label, _tmp32_);
+				_g_free0 (_tmp32_);
+				_g_free0 (_tmp30_);
+				_g_free0 (_tmp28_);
+				_g_free0 (_tmp26_);
+				_g_free0 (_tmp24_);
+				_g_free0 (_tmp22_);
 			}
 			_project_free0 (project);
 		}
@@ -477,29 +566,61 @@ static void document_tab_update_label_tooltip (DocumentTab* self) {
 }
 
 
-char* document_tab_get_name (DocumentTab* self) {
-	char* result = NULL;
+gchar* document_tab_get_name (DocumentTab* self) {
+	gchar* result = NULL;
+	const gchar* _tmp0_ = NULL;
+	const gchar* _tmp1_ = NULL;
+	gchar* _tmp2_;
 	g_return_val_if_fail (self != NULL, NULL);
-	result = g_strconcat (gtk_label_get_label (self->priv->_label_mark), document_tab_get_label_text (self), NULL);
+	_tmp0_ = gtk_label_get_label (self->priv->_label_mark);
+	_tmp1_ = document_tab_get_label_text (self);
+	_tmp2_ = g_strconcat (_tmp0_, _tmp1_, NULL);
+	result = _tmp2_;
 	return result;
 }
 
 
-char* document_tab_get_menu_tip (DocumentTab* self) {
-	char* result = NULL;
-	char* _tmp0_;
-	char* _tmp1_;
+gchar* document_tab_get_menu_tip (DocumentTab* self) {
+	gchar* result = NULL;
+	const gchar* _tmp0_ = NULL;
+	gchar* _tmp1_ = NULL;
+	gchar* _tmp2_;
+	gchar* _tmp3_ = NULL;
+	gchar* _tmp4_;
 	g_return_val_if_fail (self != NULL, NULL);
-	result = (_tmp1_ = g_strdup_printf (_ ("Activate '%s'"), _tmp0_ = document_get_uri_for_display (self->priv->_document)), _g_free0 (_tmp0_), _tmp1_);
+	_tmp0_ = _ ("Activate '%s'");
+	_tmp1_ = document_get_uri_for_display (self->priv->_document);
+	_tmp2_ = _tmp1_;
+	_tmp3_ = g_strdup_printf (_tmp0_, _tmp2_);
+	_tmp4_ = _tmp3_;
+	_g_free0 (_tmp2_);
+	result = _tmp4_;
 	return result;
 }
 
 
+static Block20Data* block20_data_ref (Block20Data* _data20_) {
+	g_atomic_int_inc (&_data20_->_ref_count_);
+	return _data20_;
+}
+
+
+static void block20_data_unref (Block20Data* _data20_) {
+	if (g_atomic_int_dec_and_test (&_data20_->_ref_count_)) {
+		_g_object_unref0 (_data20_->self);
+		_g_object_unref0 (_data20_->infobar);
+		g_slice_free (Block20Data, _data20_);
+	}
+}
+
+
 static void _lambda18_ (gint response_id, Block20Data* _data20_) {
 	DocumentTab * self;
 	self = _data20_->self;
 	if (response_id == GTK_RESPONSE_OK) {
-		document_load (self->priv->_document, document_get_location (self->priv->_document));
+		GFile* _tmp0_ = NULL;
+		_tmp0_ = document_get_location (self->priv->_document);
+		document_load (self->priv->_document, _tmp0_);
 		self->priv->ask_if_externally_modified = FALSE;
 	}
 	gtk_object_destroy ((GtkObject*) _data20_->infobar);
@@ -512,58 +633,72 @@ static void __lambda18__gtk_info_bar_response (GtkInfoBar* _sender, gint respons
 }
 
 
-static Block20Data* block20_data_ref (Block20Data* _data20_) {
-	g_atomic_int_inc (&_data20_->_ref_count_);
-	return _data20_;
-}
-
-
-static void block20_data_unref (Block20Data* _data20_) {
-	if (g_atomic_int_dec_and_test (&_data20_->_ref_count_)) {
-		_g_object_unref0 (_data20_->self);
-		_g_object_unref0 (_data20_->infobar);
-		g_slice_free (Block20Data, _data20_);
-	}
-}
-
-
 static gboolean document_tab_view_focused_in (DocumentTab* self) {
 	gboolean result = FALSE;
+	gboolean _tmp0_;
+	gboolean _tmp1_;
 	g_return_val_if_fail (self != NULL, FALSE);
 	if (self->priv->ask_if_externally_modified) {
 		result = FALSE;
 		return result;
 	}
-	if (!document_is_local (self->priv->_document)) {
+	_tmp0_ = document_is_local (self->priv->_document);
+	if (!_tmp0_) {
 		result = FALSE;
 		return result;
 	}
-	if (document_is_externally_modified (self->priv->_document)) {
+	_tmp1_ = document_is_externally_modified (self->priv->_document);
+	if (_tmp1_) {
 		Block20Data* _data20_;
-		char* _tmp0_;
-		char* _tmp1_;
-		char* primary_msg;
-		char* secondary_msg;
+		const gchar* _tmp2_ = NULL;
+		GFile* _tmp3_ = NULL;
+		gchar* _tmp4_ = NULL;
+		gchar* _tmp5_;
+		gchar* _tmp6_ = NULL;
+		gchar* _tmp7_;
+		gchar* primary_msg;
+		gchar* secondary_msg = NULL;
+		gboolean _tmp8_;
+		TabInfoBar* _tmp13_ = NULL;
+		const gchar* _tmp14_ = NULL;
 		_data20_ = g_slice_new0 (Block20Data);
 		_data20_->_ref_count_ = 1;
 		_data20_->self = g_object_ref (self);
 		self->priv->ask_if_externally_modified = TRUE;
-		primary_msg = (_tmp1_ = g_strdup_printf (_ ("The file %s changed on disk."), _tmp0_ = g_file_get_parse_name (document_get_location (self->priv->_document))), _g_free0 (_tmp0_), _tmp1_);
-		secondary_msg = NULL;
-		if (document_get_modified (self->priv->_document)) {
-			char* _tmp2_;
-			secondary_msg = (_tmp2_ = g_strdup (_ ("Do you want to drop your changes and reload the file?")), _g_free0 (secondary_msg), _tmp2_);
+		_tmp2_ = _ ("The file %s changed on disk.");
+		_tmp3_ = document_get_location (self->priv->_document);
+		_tmp4_ = g_file_get_parse_name (_tmp3_);
+		_tmp5_ = _tmp4_;
+		_tmp6_ = g_strdup_printf (_tmp2_, _tmp5_);
+		_tmp7_ = _tmp6_;
+		_g_free0 (_tmp5_);
+		primary_msg = _tmp7_;
+		_tmp8_ = document_get_modified (self->priv->_document);
+		if (_tmp8_) {
+			const gchar* _tmp9_ = NULL;
+			gchar* _tmp10_;
+			_tmp9_ = _ ("Do you want to drop your changes and reload the file?");
+			_tmp10_ = g_strdup (_tmp9_);
+			_g_free0 (secondary_msg);
+			secondary_msg = _tmp10_;
 		} else {
-			char* _tmp3_;
-			secondary_msg = (_tmp3_ = g_strdup (_ ("Do you want to reload the file?")), _g_free0 (secondary_msg), _tmp3_);
+			const gchar* _tmp11_ = NULL;
+			gchar* _tmp12_;
+			_tmp11_ = _ ("Do you want to reload the file?");
+			_tmp12_ = g_strdup (_tmp11_);
+			_g_free0 (secondary_msg);
+			secondary_msg = _tmp12_;
 		}
-		_data20_->infobar = document_tab_add_message (self, primary_msg, secondary_msg, GTK_MESSAGE_WARNING);
-		tab_info_bar_add_stock_button_with_text (_data20_->infobar, _ ("Reload"), GTK_STOCK_REFRESH, (gint) GTK_RESPONSE_OK);
+		_tmp13_ = document_tab_add_message (self, primary_msg, secondary_msg, GTK_MESSAGE_WARNING);
+		_data20_->infobar = _tmp13_;
+		_tmp14_ = _ ("Reload");
+		tab_info_bar_add_stock_button_with_text (_data20_->infobar, _tmp14_, GTK_STOCK_REFRESH, (gint) GTK_RESPONSE_OK);
 		gtk_info_bar_add_button ((GtkInfoBar*) _data20_->infobar, GTK_STOCK_CANCEL, (gint) GTK_RESPONSE_CANCEL);
 		g_signal_connect_data ((GtkInfoBar*) _data20_->infobar, "response", (GCallback) __lambda18__gtk_info_bar_response, block20_data_ref (_data20_), (GClosureNotify) block20_data_unref, 0);
 		_g_free0 (secondary_msg);
 		_g_free0 (primary_msg);
 		block20_data_unref (_data20_);
+		_data20_ = NULL;
 	}
 	result = FALSE;
 	return result;
@@ -578,11 +713,19 @@ static gboolean _document_tab_on_auto_save_gsource_func (gpointer self) {
 
 
 static void document_tab_install_auto_save_timeout (DocumentTab* self) {
+	gboolean _tmp0_;
+	guint _tmp1_;
+	guint _tmp2_;
+	guint _tmp3_;
 	g_return_if_fail (self != NULL);
 	g_return_if_fail (self->priv->auto_save_timeout <= 0);
-	g_return_if_fail (document_tab_get_auto_save (self));
-	g_return_if_fail (document_tab_get_auto_save_interval (self) > 0);
-	self->priv->auto_save_timeout = g_timeout_add_seconds_full (G_PRIORITY_DEFAULT, document_tab_get_auto_save_interval (self) * 60, _document_tab_on_auto_save_gsource_func, g_object_ref (self), g_object_unref);
+	_tmp0_ = document_tab_get_auto_save (self);
+	g_return_if_fail (_tmp0_);
+	_tmp1_ = document_tab_get_auto_save_interval (self);
+	g_return_if_fail (_tmp1_ > 0);
+	_tmp2_ = document_tab_get_auto_save_interval (self);
+	_tmp3_ = g_timeout_add_seconds_full (G_PRIORITY_DEFAULT, _tmp2_ * 60, _document_tab_on_auto_save_gsource_func, g_object_ref (self), g_object_unref);
+	self->priv->auto_save_timeout = _tmp3_;
 }
 
 
@@ -590,15 +733,21 @@ static gboolean document_tab_install_auto_save_timeout_if_needed (DocumentTab* s
 	gboolean result = FALSE;
 	gboolean _tmp0_ = FALSE;
 	gboolean _tmp1_ = FALSE;
+	gboolean _tmp2_;
 	g_return_val_if_fail (self != NULL, FALSE);
 	g_return_val_if_fail (self->priv->auto_save_timeout <= 0, FALSE);
-	if (document_tab_get_auto_save (self)) {
-		_tmp1_ = document_get_location (self->priv->_document) != NULL;
+	_tmp2_ = document_tab_get_auto_save (self);
+	if (_tmp2_) {
+		GFile* _tmp3_ = NULL;
+		_tmp3_ = document_get_location (self->priv->_document);
+		_tmp1_ = _tmp3_ != NULL;
 	} else {
 		_tmp1_ = FALSE;
 	}
 	if (_tmp1_) {
-		_tmp0_ = !document_get_readonly (self->priv->_document);
+		gboolean _tmp4_;
+		_tmp4_ = document_get_readonly (self->priv->_document);
+		_tmp0_ = !_tmp4_;
 	} else {
 		_tmp0_ = FALSE;
 	}
@@ -622,13 +771,23 @@ static void document_tab_remove_auto_save_timeout (DocumentTab* self) {
 
 static gboolean document_tab_on_auto_save (DocumentTab* self) {
 	gboolean result = FALSE;
+	GFile* _tmp0_ = NULL;
+	gboolean _tmp1_;
+	gboolean _tmp2_;
+	guint _tmp3_;
+	gboolean _tmp4_;
 	g_return_val_if_fail (self != NULL, FALSE);
-	g_return_val_if_fail (document_get_location (self->priv->_document) != NULL, FALSE);
-	g_return_val_if_fail (!document_get_readonly (self->priv->_document), FALSE);
+	_tmp0_ = document_get_location (self->priv->_document);
+	g_return_val_if_fail (_tmp0_ != NULL, FALSE);
+	_tmp1_ = document_get_readonly (self->priv->_document);
+	g_return_val_if_fail (!_tmp1_, FALSE);
 	g_return_val_if_fail (self->priv->auto_save_timeout > 0, FALSE);
-	g_return_val_if_fail (document_tab_get_auto_save (self), FALSE);
-	g_return_val_if_fail (document_tab_get_auto_save_interval (self) > 0, FALSE);
-	if (document_get_modified (self->priv->_document)) {
+	_tmp2_ = document_tab_get_auto_save (self);
+	g_return_val_if_fail (_tmp2_, FALSE);
+	_tmp3_ = document_tab_get_auto_save_interval (self);
+	g_return_val_if_fail (_tmp3_ > 0, FALSE);
+	_tmp4_ = document_get_modified (self->priv->_document);
+	if (_tmp4_) {
 		document_save (self->priv->_document, TRUE, FALSE);
 	}
 	result = TRUE;
@@ -647,7 +806,9 @@ DocumentView* document_tab_get_view (DocumentTab* self) {
 static void document_tab_set_view (DocumentTab* self, DocumentView* value) {
 	DocumentView* _tmp0_;
 	g_return_if_fail (self != NULL);
-	self->priv->_view = (_tmp0_ = _g_object_ref0 (value), _g_object_unref0 (self->priv->_view), _tmp0_);
+	_tmp0_ = _g_object_ref0 (value);
+	_g_object_unref0 (self->priv->_view);
+	self->priv->_view = _tmp0_;
 	g_object_notify ((GObject *) self, "view");
 }
 
@@ -663,7 +824,9 @@ Document* document_tab_get_document (DocumentTab* self) {
 static void document_tab_set_document (DocumentTab* self, Document* value) {
 	Document* _tmp0_;
 	g_return_if_fail (self != NULL);
-	self->priv->_document = (_tmp0_ = _g_object_ref0 (value), _g_object_unref0 (self->priv->_document), _tmp0_);
+	_tmp0_ = _g_object_ref0 (value);
+	_g_object_unref0 (self->priv->_document);
+	self->priv->_document = _tmp0_;
 	g_object_notify ((GObject *) self, "document");
 }
 
@@ -676,15 +839,17 @@ GtkHBox* document_tab_get_label (DocumentTab* self) {
 }
 
 
-const char* document_tab_get_label_text (DocumentTab* self) {
-	const char* result;
+const gchar* document_tab_get_label_text (DocumentTab* self) {
+	const gchar* result;
+	const gchar* _tmp0_ = NULL;
 	g_return_val_if_fail (self != NULL, NULL);
-	result = gtk_label_get_label (self->priv->_label_text);
+	_tmp0_ = gtk_label_get_label (self->priv->_label_text);
+	result = _tmp0_;
 	return result;
 }
 
 
-static void document_tab_set_label_text (DocumentTab* self, const char* value) {
+static void document_tab_set_label_text (DocumentTab* self, const gchar* value) {
 	g_return_if_fail (self != NULL);
 	gtk_label_set_label (self->priv->_label_text, value);
 	g_object_notify ((GObject *) self, "label-text");
@@ -710,8 +875,12 @@ void document_tab_set_auto_save_interval (DocumentTab* self, guint value) {
 		return;
 	}
 	if (self->priv->auto_save_timeout > 0) {
-		g_return_if_fail (document_get_location (self->priv->_document) != NULL);
-		g_return_if_fail (!document_get_readonly (self->priv->_document));
+		GFile* _tmp0_ = NULL;
+		gboolean _tmp1_;
+		_tmp0_ = document_get_location (self->priv->_document);
+		g_return_if_fail (_tmp0_ != NULL);
+		_tmp1_ = document_get_readonly (self->priv->_document);
+		g_return_if_fail (!_tmp1_);
 		document_tab_remove_auto_save_timeout (self);
 		document_tab_install_auto_save_timeout (self);
 	}
@@ -731,10 +900,10 @@ void document_tab_set_auto_save (DocumentTab* self, gboolean value) {
 	gboolean _tmp0_ = FALSE;
 	gboolean _tmp1_ = FALSE;
 	gboolean _tmp2_ = FALSE;
-	gboolean _tmp3_ = FALSE;
-	gboolean _tmp4_ = FALSE;
 	gboolean _tmp5_ = FALSE;
 	gboolean _tmp6_ = FALSE;
+	gboolean _tmp7_ = FALSE;
+	gboolean _tmp8_ = FALSE;
 	g_return_if_fail (self != NULL);
 	if (value == self->priv->_auto_save) {
 		return;
@@ -746,12 +915,16 @@ void document_tab_set_auto_save (DocumentTab* self, gboolean value) {
 		_tmp2_ = FALSE;
 	}
 	if (_tmp2_) {
-		_tmp1_ = document_get_location (self->priv->_document) != NULL;
+		GFile* _tmp3_ = NULL;
+		_tmp3_ = document_get_location (self->priv->_document);
+		_tmp1_ = _tmp3_ != NULL;
 	} else {
 		_tmp1_ = FALSE;
 	}
 	if (_tmp1_) {
-		_tmp0_ = !document_get_readonly (self->priv->_document);
+		gboolean _tmp4_;
+		_tmp4_ = document_get_readonly (self->priv->_document);
+		_tmp0_ = !_tmp4_;
 	} else {
 		_tmp0_ = FALSE;
 	}
@@ -760,30 +933,34 @@ void document_tab_set_auto_save (DocumentTab* self, gboolean value) {
 		return;
 	}
 	if (!self->priv->_auto_save) {
-		_tmp3_ = self->priv->auto_save_timeout > 0;
+		_tmp5_ = self->priv->auto_save_timeout > 0;
 	} else {
-		_tmp3_ = FALSE;
+		_tmp5_ = FALSE;
 	}
-	if (_tmp3_) {
+	if (_tmp5_) {
 		document_tab_remove_auto_save_timeout (self);
 		return;
 	}
 	if (!self->priv->_auto_save) {
-		_tmp6_ = self->priv->auto_save_timeout <= 0;
+		_tmp8_ = self->priv->auto_save_timeout <= 0;
 	} else {
-		_tmp6_ = FALSE;
+		_tmp8_ = FALSE;
 	}
-	if (_tmp6_) {
-		_tmp5_ = TRUE;
+	if (_tmp8_) {
+		_tmp7_ = TRUE;
 	} else {
-		_tmp5_ = document_get_location (self->priv->_document) == NULL;
+		GFile* _tmp9_ = NULL;
+		_tmp9_ = document_get_location (self->priv->_document);
+		_tmp7_ = _tmp9_ == NULL;
 	}
-	if (_tmp5_) {
-		_tmp4_ = TRUE;
+	if (_tmp7_) {
+		_tmp6_ = TRUE;
 	} else {
-		_tmp4_ = document_get_readonly (self->priv->_document);
+		gboolean _tmp10_;
+		_tmp10_ = document_get_readonly (self->priv->_document);
+		_tmp6_ = _tmp10_;
 	}
-	g_return_if_fail (_tmp4_);
+	g_return_if_fail (_tmp6_);
 	g_object_notify ((GObject *) self, "auto-save");
 }
 
@@ -791,8 +968,8 @@ void document_tab_set_auto_save (DocumentTab* self, gboolean value) {
 static void document_tab_class_init (DocumentTabClass * klass) {
 	document_tab_parent_class = g_type_class_peek_parent (klass);
 	g_type_class_add_private (klass, sizeof (DocumentTabPrivate));
-	G_OBJECT_CLASS (klass)->get_property = document_tab_get_property;
-	G_OBJECT_CLASS (klass)->set_property = document_tab_set_property;
+	G_OBJECT_CLASS (klass)->get_property = _vala_document_tab_get_property;
+	G_OBJECT_CLASS (klass)->set_property = _vala_document_tab_set_property;
 	G_OBJECT_CLASS (klass)->finalize = document_tab_finalize;
 	g_object_class_install_property (G_OBJECT_CLASS (klass), DOCUMENT_TAB_VIEW, g_param_spec_object ("view", "view", "view", TYPE_DOCUMENT_VIEW, G_PARAM_STATIC_NAME | G_PARAM_STATIC_NICK | G_PARAM_STATIC_BLURB | G_PARAM_READABLE));
 	g_object_class_install_property (G_OBJECT_CLASS (klass), DOCUMENT_TAB_DOCUMENT, g_param_spec_object ("document", "document", "document", TYPE_DOCUMENT, G_PARAM_STATIC_NAME | G_PARAM_STATIC_NICK | G_PARAM_STATIC_BLURB | G_PARAM_READABLE));
@@ -805,10 +982,14 @@ static void document_tab_class_init (DocumentTabClass * klass) {
 
 
 static void document_tab_instance_init (DocumentTab * self) {
+	GtkLabel* _tmp0_ = NULL;
+	GtkLabel* _tmp1_ = NULL;
 	self->priv = DOCUMENT_TAB_GET_PRIVATE (self);
 	self->priv->ask_if_externally_modified = FALSE;
-	self->priv->_label_text = g_object_ref_sink ((GtkLabel*) gtk_label_new (NULL));
-	self->priv->_label_mark = g_object_ref_sink ((GtkLabel*) gtk_label_new (NULL));
+	_tmp0_ = (GtkLabel*) gtk_label_new (NULL);
+	self->priv->_label_text = g_object_ref_sink (_tmp0_);
+	_tmp1_ = (GtkLabel*) gtk_label_new (NULL);
+	self->priv->_label_mark = g_object_ref_sink (_tmp1_);
 }
 
 
@@ -836,7 +1017,7 @@ GType document_tab_get_type (void) {
 }
 
 
-static void document_tab_get_property (GObject * object, guint property_id, GValue * value, GParamSpec * pspec) {
+static void _vala_document_tab_get_property (GObject * object, guint property_id, GValue * value, GParamSpec * pspec) {
 	DocumentTab * self;
 	self = DOCUMENT_TAB (object);
 	switch (property_id) {
@@ -865,7 +1046,7 @@ static void document_tab_get_property (GObject * object, guint property_id, GVal
 }
 
 
-static void document_tab_set_property (GObject * object, guint property_id, const GValue * value, GParamSpec * pspec) {
+static void _vala_document_tab_set_property (GObject * object, guint property_id, const GValue * value, GParamSpec * pspec) {
 	DocumentTab * self;
 	self = DOCUMENT_TAB (object);
 	switch (property_id) {
@@ -892,4 +1073,3 @@ static void document_tab_set_property (GObject * object, guint property_id, cons
 
 
 
-
diff --git a/src/C/document_view.c b/src/C/document_view.c
index 59cb92d..44ddfc7 100644
--- a/src/C/document_view.c
+++ b/src/C/document_view.c
@@ -1,4 +1,4 @@
-/* document_view.c generated by valac 0.10.3, the Vala compiler
+/* document_view.c generated by valac 0.12.1, the Vala compiler
  * generated from document_view.vala, do not modify */
 
 /*
@@ -116,17 +116,17 @@ static void _lambda14_ (GObject* d, GParamSpec* p, DocumentView* self);
 gboolean document_get_readonly (Document* self);
 static void __lambda14__g_object_notify (GObject* _sender, GParamSpec* pspec, gpointer self);
 void document_view_set_font_from_settings (DocumentView* self);
-void document_set_style_scheme_from_string (Document* self, const char* scheme_id);
+void document_set_style_scheme_from_string (Document* self, const gchar* scheme_id);
 GType completion_provider_get_type (void) G_GNUC_CONST;
+static Block16Data* block16_data_ref (Block16Data* _data16_);
+static void block16_data_unref (Block16Data* _data16_);
 CompletionProvider* completion_provider_get_default (void);
 static void _lambda15_ (Block16Data* _data16_);
 void completion_provider_hide_calltip_window (CompletionProvider* self);
 static void __lambda15__g_object_notify (GObject* _sender, GParamSpec* pspec, gpointer self);
-static Block16Data* block16_data_ref (Block16Data* _data16_);
-static void block16_data_unref (Block16Data* _data16_);
 static gboolean document_view_on_backspace (DocumentView* self, GdkEventKey* event);
 static gboolean _document_view_on_backspace_gtk_widget_key_press_event (GtkWidget* _sender, GdkEventKey* event, gpointer self);
-void document_view_scroll_to_cursor (DocumentView* self, double margin);
+void document_view_scroll_to_cursor (DocumentView* self, gdouble margin);
 void document_view_cut_selection (DocumentView* self);
 void document_view_copy_selection (DocumentView* self);
 void document_view_my_paste_clipboard (DocumentView* self);
@@ -135,20 +135,20 @@ void document_view_my_select_all (DocumentView* self);
 guint document_view_my_get_visual_column (DocumentView* self, GtkTextIter* iter);
 GType app_settings_get_type (void) G_GNUC_CONST;
 AppSettings* app_settings_get_default (void);
-const char* app_settings_get_system_font (AppSettings* self);
-void document_view_set_font_from_string (DocumentView* self, const char* font);
+const gchar* app_settings_get_system_font (AppSettings* self);
+void document_view_set_font_from_string (DocumentView* self, const gchar* font);
 void document_view_enlarge_font (DocumentView* self);
 void document_view_shrink_font (DocumentView* self);
-char* document_view_get_indentation_style (DocumentView* self);
+gchar* document_view_get_indentation_style (DocumentView* self);
 static void document_view_finalize (GObject* obj);
-static int _vala_strcmp0 (const char * str1, const char * str2);
-
 
 
 static void _lambda14_ (GObject* d, GParamSpec* p, DocumentView* self) {
+	gboolean _tmp0_;
 	g_return_if_fail (d != NULL);
 	g_return_if_fail (p != NULL);
-	gtk_text_view_set_editable ((GtkTextView*) self, !document_get_readonly (DOCUMENT (d)));
+	_tmp0_ = document_get_readonly (DOCUMENT (d));
+	gtk_text_view_set_editable ((GtkTextView*) self, !_tmp0_);
 }
 
 
@@ -157,18 +157,6 @@ static void __lambda14__g_object_notify (GObject* _sender, GParamSpec* pspec, gp
 }
 
 
-static void _lambda15_ (Block16Data* _data16_) {
-	DocumentView * self;
-	self = _data16_->self;
-	completion_provider_hide_calltip_window (_data16_->provider);
-}
-
-
-static void __lambda15__g_object_notify (GObject* _sender, GParamSpec* pspec, gpointer self) {
-	_lambda15_ (self);
-}
-
-
 static Block16Data* block16_data_ref (Block16Data* _data16_) {
 	g_atomic_int_inc (&_data16_->_ref_count_);
 	return _data16_;
@@ -184,6 +172,18 @@ static void block16_data_unref (Block16Data* _data16_) {
 }
 
 
+static void _lambda15_ (Block16Data* _data16_) {
+	DocumentView * self;
+	self = _data16_->self;
+	completion_provider_hide_calltip_window (_data16_->provider);
+}
+
+
+static void __lambda15__g_object_notify (GObject* _sender, GParamSpec* pspec, gpointer self) {
+	_lambda15_ (self);
+}
+
+
 static gboolean _document_view_on_backspace_gtk_widget_key_press_event (GtkWidget* _sender, GdkEventKey* event, gpointer self) {
 	gboolean result;
 	result = document_view_on_backspace (self, event);
@@ -192,53 +192,73 @@ static gboolean _document_view_on_backspace_gtk_widget_key_press_event (GtkWidge
 
 
 DocumentView* document_view_construct (GType object_type, Document* doc) {
-	DocumentView * self;
-	GSettings* _tmp0_;
+	DocumentView * self = NULL;
+	GSettings* _tmp0_ = NULL;
 	guint tmp = 0U;
-	char* _tmp1_;
+	gboolean _tmp1_;
+	gboolean _tmp2_;
+	gboolean _tmp3_;
+	gboolean _tmp4_;
+	gchar* _tmp5_ = NULL;
+	gchar* _tmp6_;
+	Block16Data* _data16_;
+	CompletionProvider* _tmp7_ = NULL;
+	GtkSourceCompletion* _tmp8_ = NULL;
+	GtkSourceCompletion* _tmp9_ = NULL;
+	GtkTextBuffer* _tmp10_ = NULL;
 	GError * _inner_error_ = NULL;
 	g_return_val_if_fail (doc != NULL, NULL);
-	self = g_object_newv (object_type, 0, NULL);
+	self = (DocumentView*) g_object_new (object_type, NULL);
 	gtk_text_view_set_buffer ((GtkTextView*) self, (GtkTextBuffer*) doc);
 	g_signal_connect_object ((GObject*) doc, "notify::readonly", (GCallback) __lambda14__g_object_notify, self, 0);
 	gtk_text_view_set_wrap_mode ((GtkTextView*) self, GTK_WRAP_WORD);
 	gtk_source_view_set_auto_indent ((GtkSourceView*) self, TRUE);
 	gtk_source_view_set_indent_width ((GtkSourceView*) self, -1);
-	self->priv->editor_settings = (_tmp0_ = g_settings_new ("org.gnome.latexila.preferences.editor"), _g_object_unref0 (self->priv->editor_settings), _tmp0_);
+	_tmp0_ = g_settings_new ("org.gnome.latexila.preferences.editor");
+	_g_object_unref0 (self->priv->editor_settings);
+	self->priv->editor_settings = _tmp0_;
 	document_view_set_font_from_settings (self);
 	g_settings_get (self->priv->editor_settings, "tabs-size", "u", &tmp);
 	gtk_source_view_set_tab_width ((GtkSourceView*) self, tmp);
-	gtk_source_view_set_insert_spaces_instead_of_tabs ((GtkSourceView*) self, g_settings_get_boolean (self->priv->editor_settings, "insert-spaces"));
-	gtk_source_view_set_show_line_numbers ((GtkSourceView*) self, g_settings_get_boolean (self->priv->editor_settings, "display-line-numbers"));
-	gtk_source_view_set_highlight_current_line ((GtkSourceView*) self, g_settings_get_boolean (self->priv->editor_settings, "highlight-current-line"));
-	gtk_source_buffer_set_highlight_matching_brackets ((GtkSourceBuffer*) doc, g_settings_get_boolean (self->priv->editor_settings, "bracket-matching"));
-	document_set_style_scheme_from_string (doc, _tmp1_ = g_settings_get_string (self->priv->editor_settings, "scheme"));
-	_g_free0 (_tmp1_);
-	{
-		Block16Data* _data16_;
-		_data16_ = g_slice_new0 (Block16Data);
-		_data16_->_ref_count_ = 1;
-		_data16_->self = g_object_ref (self);
-		_data16_->provider = completion_provider_get_default ();
-		gtk_source_completion_add_provider (gtk_source_view_get_completion ((GtkSourceView*) self), (GtkSourceCompletionProvider*) _data16_->provider, &_inner_error_);
-		if (_inner_error_ != NULL) {
-			block16_data_unref (_data16_);
-			goto __catch39_g_error;
-		}
-		g_object_set (gtk_source_view_get_completion ((GtkSourceView*) self), "remember-info-visibility", TRUE, NULL);
-		g_signal_connect_data ((GObject*) gtk_text_view_get_buffer ((GtkTextView*) self), "notify::cursor-position", (GCallback) __lambda15__g_object_notify, block16_data_ref (_data16_), (GClosureNotify) block16_data_unref, 0);
+	_tmp1_ = g_settings_get_boolean (self->priv->editor_settings, "insert-spaces");
+	gtk_source_view_set_insert_spaces_instead_of_tabs ((GtkSourceView*) self, _tmp1_);
+	_tmp2_ = g_settings_get_boolean (self->priv->editor_settings, "display-line-numbers");
+	gtk_source_view_set_show_line_numbers ((GtkSourceView*) self, _tmp2_);
+	_tmp3_ = g_settings_get_boolean (self->priv->editor_settings, "highlight-current-line");
+	gtk_source_view_set_highlight_current_line ((GtkSourceView*) self, _tmp3_);
+	_tmp4_ = g_settings_get_boolean (self->priv->editor_settings, "bracket-matching");
+	gtk_source_buffer_set_highlight_matching_brackets ((GtkSourceBuffer*) doc, _tmp4_);
+	_tmp5_ = g_settings_get_string (self->priv->editor_settings, "scheme");
+	_tmp6_ = _tmp5_;
+	document_set_style_scheme_from_string (doc, _tmp6_);
+	_g_free0 (_tmp6_);
+	gtk_source_view_set_smart_home_end ((GtkSourceView*) self, GTK_SOURCE_SMART_HOME_END_AFTER);
+	_data16_ = g_slice_new0 (Block16Data);
+	_data16_->_ref_count_ = 1;
+	_data16_->self = g_object_ref (self);
+	_tmp7_ = completion_provider_get_default ();
+	_data16_->provider = _tmp7_;
+	_tmp8_ = gtk_source_view_get_completion ((GtkSourceView*) self);
+	gtk_source_completion_add_provider (_tmp8_, (GtkSourceCompletionProvider*) _data16_->provider, &_inner_error_);
+	if (_inner_error_ != NULL) {
 		block16_data_unref (_data16_);
+		_data16_ = NULL;
+		goto __catch39_g_error;
 	}
+	_tmp9_ = gtk_source_view_get_completion ((GtkSourceView*) self);
+	g_object_set (_tmp9_, "remember-info-visibility", TRUE, NULL);
+	_tmp10_ = gtk_text_view_get_buffer ((GtkTextView*) self);
+	g_signal_connect_data ((GObject*) _tmp10_, "notify::cursor-position", (GCallback) __lambda15__g_object_notify, block16_data_ref (_data16_), (GClosureNotify) block16_data_unref, 0);
+	block16_data_unref (_data16_);
+	_data16_ = NULL;
 	goto __finally39;
 	__catch39_g_error:
 	{
 		GError * e;
 		e = _inner_error_;
 		_inner_error_ = NULL;
-		{
-			fprintf (stderr, "Error completion: %s\n", e->message);
-			_g_error_free0 (e);
-		}
+		fprintf (stderr, "Error completion: %s\n", e->message);
+		_g_error_free0 (e);
 	}
 	__finally39:
 	if (_inner_error_ != NULL) {
@@ -256,9 +276,13 @@ DocumentView* document_view_new (Document* doc) {
 }
 
 
-void document_view_scroll_to_cursor (DocumentView* self, double margin) {
+void document_view_scroll_to_cursor (DocumentView* self, gdouble margin) {
+	GtkTextBuffer* _tmp0_ = NULL;
+	GtkTextMark* _tmp1_ = NULL;
 	g_return_if_fail (self != NULL);
-	gtk_text_view_scroll_to_mark ((GtkTextView*) self, gtk_text_buffer_get_insert (gtk_text_view_get_buffer ((GtkTextView*) self)), margin, FALSE, (double) 0, (double) 0);
+	_tmp0_ = gtk_text_view_get_buffer ((GtkTextView*) self);
+	_tmp1_ = gtk_text_buffer_get_insert (_tmp0_);
+	gtk_text_view_scroll_to_mark ((GtkTextView*) self, _tmp1_, margin, FALSE, (gdouble) 0, (gdouble) 0);
 }
 
 
@@ -268,11 +292,23 @@ static gpointer _g_object_ref0 (gpointer self) {
 
 
 void document_view_cut_selection (DocumentView* self) {
+	GtkTextBuffer* _tmp0_ = NULL;
+	GtkClipboard* _tmp1_ = NULL;
+	GtkClipboard* _tmp2_;
 	GtkClipboard* clipboard;
+	GtkTextBuffer* _tmp3_ = NULL;
+	GtkTextBuffer* _tmp4_ = NULL;
+	gboolean _tmp5_;
 	g_return_if_fail (self != NULL);
-	g_return_if_fail (gtk_text_view_get_buffer ((GtkTextView*) self) != NULL);
-	clipboard = _g_object_ref0 (gtk_widget_get_clipboard ((GtkWidget*) self, GDK_SELECTION_CLIPBOARD));
-	gtk_text_buffer_cut_clipboard (gtk_text_view_get_buffer ((GtkTextView*) self), clipboard, !document_get_readonly (DOCUMENT (gtk_text_view_get_buffer ((GtkTextView*) self))));
+	_tmp0_ = gtk_text_view_get_buffer ((GtkTextView*) self);
+	g_return_if_fail (_tmp0_ != NULL);
+	_tmp1_ = gtk_widget_get_clipboard ((GtkWidget*) self, GDK_SELECTION_CLIPBOARD);
+	_tmp2_ = _g_object_ref0 (_tmp1_);
+	clipboard = _tmp2_;
+	_tmp3_ = gtk_text_view_get_buffer ((GtkTextView*) self);
+	_tmp4_ = gtk_text_view_get_buffer ((GtkTextView*) self);
+	_tmp5_ = document_get_readonly (DOCUMENT (_tmp4_));
+	gtk_text_buffer_cut_clipboard (_tmp3_, clipboard, !_tmp5_);
 	document_view_scroll_to_cursor (self, DOCUMENT_VIEW_SCROLL_MARGIN);
 	gtk_widget_grab_focus ((GtkWidget*) self);
 	_g_object_unref0 (clipboard);
@@ -280,22 +316,42 @@ void document_view_cut_selection (DocumentView* self) {
 
 
 void document_view_copy_selection (DocumentView* self) {
+	GtkTextBuffer* _tmp0_ = NULL;
+	GtkClipboard* _tmp1_ = NULL;
+	GtkClipboard* _tmp2_;
 	GtkClipboard* clipboard;
+	GtkTextBuffer* _tmp3_ = NULL;
 	g_return_if_fail (self != NULL);
-	g_return_if_fail (gtk_text_view_get_buffer ((GtkTextView*) self) != NULL);
-	clipboard = _g_object_ref0 (gtk_widget_get_clipboard ((GtkWidget*) self, GDK_SELECTION_CLIPBOARD));
-	gtk_text_buffer_copy_clipboard (gtk_text_view_get_buffer ((GtkTextView*) self), clipboard);
+	_tmp0_ = gtk_text_view_get_buffer ((GtkTextView*) self);
+	g_return_if_fail (_tmp0_ != NULL);
+	_tmp1_ = gtk_widget_get_clipboard ((GtkWidget*) self, GDK_SELECTION_CLIPBOARD);
+	_tmp2_ = _g_object_ref0 (_tmp1_);
+	clipboard = _tmp2_;
+	_tmp3_ = gtk_text_view_get_buffer ((GtkTextView*) self);
+	gtk_text_buffer_copy_clipboard (_tmp3_, clipboard);
 	gtk_widget_grab_focus ((GtkWidget*) self);
 	_g_object_unref0 (clipboard);
 }
 
 
 void document_view_my_paste_clipboard (DocumentView* self) {
+	GtkTextBuffer* _tmp0_ = NULL;
+	GtkClipboard* _tmp1_ = NULL;
+	GtkClipboard* _tmp2_;
 	GtkClipboard* clipboard;
+	GtkTextBuffer* _tmp3_ = NULL;
+	GtkTextBuffer* _tmp4_ = NULL;
+	gboolean _tmp5_;
 	g_return_if_fail (self != NULL);
-	g_return_if_fail (gtk_text_view_get_buffer ((GtkTextView*) self) != NULL);
-	clipboard = _g_object_ref0 (gtk_widget_get_clipboard ((GtkWidget*) self, GDK_SELECTION_CLIPBOARD));
-	gtk_text_buffer_paste_clipboard (gtk_text_view_get_buffer ((GtkTextView*) self), clipboard, NULL, !document_get_readonly (DOCUMENT (gtk_text_view_get_buffer ((GtkTextView*) self))));
+	_tmp0_ = gtk_text_view_get_buffer ((GtkTextView*) self);
+	g_return_if_fail (_tmp0_ != NULL);
+	_tmp1_ = gtk_widget_get_clipboard ((GtkWidget*) self, GDK_SELECTION_CLIPBOARD);
+	_tmp2_ = _g_object_ref0 (_tmp1_);
+	clipboard = _tmp2_;
+	_tmp3_ = gtk_text_view_get_buffer ((GtkTextView*) self);
+	_tmp4_ = gtk_text_view_get_buffer ((GtkTextView*) self);
+	_tmp5_ = document_get_readonly (DOCUMENT (_tmp4_));
+	gtk_text_buffer_paste_clipboard (_tmp3_, clipboard, NULL, !_tmp5_);
 	document_view_scroll_to_cursor (self, DOCUMENT_VIEW_SCROLL_MARGIN);
 	gtk_widget_grab_focus ((GtkWidget*) self);
 	_g_object_unref0 (clipboard);
@@ -303,43 +359,69 @@ void document_view_my_paste_clipboard (DocumentView* self) {
 
 
 void document_view_delete_selection (DocumentView* self) {
+	GtkTextBuffer* _tmp0_ = NULL;
+	GtkTextBuffer* _tmp1_ = NULL;
+	GtkTextBuffer* _tmp2_ = NULL;
+	gboolean _tmp3_;
 	g_return_if_fail (self != NULL);
-	g_return_if_fail (gtk_text_view_get_buffer ((GtkTextView*) self) != NULL);
-	gtk_text_buffer_delete_selection (gtk_text_view_get_buffer ((GtkTextView*) self), TRUE, !document_get_readonly (DOCUMENT (gtk_text_view_get_buffer ((GtkTextView*) self))));
+	_tmp0_ = gtk_text_view_get_buffer ((GtkTextView*) self);
+	g_return_if_fail (_tmp0_ != NULL);
+	_tmp1_ = gtk_text_view_get_buffer ((GtkTextView*) self);
+	_tmp2_ = gtk_text_view_get_buffer ((GtkTextView*) self);
+	_tmp3_ = document_get_readonly (DOCUMENT (_tmp2_));
+	gtk_text_buffer_delete_selection (_tmp1_, TRUE, !_tmp3_);
 	document_view_scroll_to_cursor (self, DOCUMENT_VIEW_SCROLL_MARGIN);
 }
 
 
 void document_view_my_select_all (DocumentView* self) {
+	GtkTextBuffer* _tmp0_ = NULL;
 	GtkTextIter start = {0};
 	GtkTextIter end = {0};
+	GtkTextBuffer* _tmp1_ = NULL;
+	GtkTextIter _tmp2_ = {0};
+	GtkTextIter _tmp3_ = {0};
+	GtkTextBuffer* _tmp4_ = NULL;
 	g_return_if_fail (self != NULL);
-	g_return_if_fail (gtk_text_view_get_buffer ((GtkTextView*) self) != NULL);
-	gtk_text_buffer_get_bounds (gtk_text_view_get_buffer ((GtkTextView*) self), &start, &end);
-	gtk_text_buffer_select_range (gtk_text_view_get_buffer ((GtkTextView*) self), &start, &end);
+	_tmp0_ = gtk_text_view_get_buffer ((GtkTextView*) self);
+	g_return_if_fail (_tmp0_ != NULL);
+	_tmp1_ = gtk_text_view_get_buffer ((GtkTextView*) self);
+	gtk_text_buffer_get_bounds (_tmp1_, &_tmp2_, &_tmp3_);
+	start = _tmp2_;
+	end = _tmp3_;
+	_tmp4_ = gtk_text_view_get_buffer ((GtkTextView*) self);
+	gtk_text_buffer_select_range (_tmp4_, &start, &end);
 }
 
 
 guint document_view_my_get_visual_column (DocumentView* self, GtkTextIter* iter) {
 	guint result = 0U;
 	guint column;
+	guint _tmp0_;
 	guint tab_width;
 	GtkTextIter position;
 	g_return_val_if_fail (self != NULL, 0U);
 	column = (guint) 0;
-	tab_width = gtk_source_view_get_tab_width ((GtkSourceView*) self);
+	_tmp0_ = gtk_source_view_get_tab_width ((GtkSourceView*) self);
+	tab_width = _tmp0_;
 	position = *iter;
 	gtk_text_iter_set_visible_line_offset (&position, 0);
 	while (TRUE) {
-		if (!(!gtk_text_iter_equal (iter, &position))) {
+		gboolean _tmp1_;
+		gunichar _tmp2_;
+		gboolean _tmp3_;
+		_tmp1_ = gtk_text_iter_equal (iter, &position);
+		if (!(!_tmp1_)) {
 			break;
 		}
-		if (gtk_text_iter_get_char (&position) == '\t') {
+		_tmp2_ = gtk_text_iter_get_char (&position);
+		if (_tmp2_ == '\t') {
 			column = column + (tab_width - (column % tab_width));
 		} else {
 			column++;
 		}
-		if (!gtk_text_iter_forward_char (&position)) {
+		_tmp3_ = gtk_text_iter_forward_char (&position);
+		if (!_tmp3_) {
 			break;
 		}
 	}
@@ -349,62 +431,86 @@ guint document_view_my_get_visual_column (DocumentView* self, GtkTextIter* iter)
 
 
 void document_view_set_font_from_settings (DocumentView* self) {
-	char* font;
+	gchar* font = NULL;
+	gboolean _tmp0_;
 	g_return_if_fail (self != NULL);
-	font = NULL;
-	if (g_settings_get_boolean (self->priv->editor_settings, "use-default-font")) {
-		AppSettings* _tmp0_;
-		char* _tmp1_;
-		font = (_tmp1_ = g_strdup (app_settings_get_system_font (_tmp0_ = app_settings_get_default ())), _g_free0 (font), _tmp1_);
-		_g_object_unref0 (_tmp0_);
+	_tmp0_ = g_settings_get_boolean (self->priv->editor_settings, "use-default-font");
+	if (_tmp0_) {
+		AppSettings* _tmp1_ = NULL;
+		AppSettings* _tmp2_;
+		const gchar* _tmp3_ = NULL;
+		gchar* _tmp4_;
+		_tmp1_ = app_settings_get_default ();
+		_tmp2_ = _tmp1_;
+		_tmp3_ = app_settings_get_system_font (_tmp2_);
+		_tmp4_ = g_strdup (_tmp3_);
+		_g_free0 (font);
+		font = _tmp4_;
+		_g_object_unref0 (_tmp2_);
 	} else {
-		char* _tmp2_;
-		font = (_tmp2_ = g_settings_get_string (self->priv->editor_settings, "editor-font"), _g_free0 (font), _tmp2_);
+		gchar* _tmp5_ = NULL;
+		_tmp5_ = g_settings_get_string (self->priv->editor_settings, "editor-font");
+		_g_free0 (font);
+		font = _tmp5_;
 	}
 	document_view_set_font_from_string (self, font);
 	_g_free0 (font);
 }
 
 
-void document_view_set_font_from_string (DocumentView* self, const char* font) {
-	PangoFontDescription* _tmp0_;
+void document_view_set_font_from_string (DocumentView* self, const gchar* font) {
+	PangoFontDescription* _tmp0_ = NULL;
 	g_return_if_fail (self != NULL);
 	g_return_if_fail (font != NULL);
-	self->priv->font_desc = (_tmp0_ = pango_font_description_from_string (font), _pango_font_description_free0 (self->priv->font_desc), _tmp0_);
+	_tmp0_ = pango_font_description_from_string (font);
+	_pango_font_description_free0 (self->priv->font_desc);
+	self->priv->font_desc = _tmp0_;
 	gtk_widget_modify_font ((GtkWidget*) self, self->priv->font_desc);
 }
 
 
 void document_view_enlarge_font (DocumentView* self) {
+	gint _tmp0_;
 	g_return_if_fail (self != NULL);
-	pango_font_description_set_size (self->priv->font_desc, pango_font_description_get_size (self->priv->font_desc) + PANGO_SCALE);
+	_tmp0_ = pango_font_description_get_size (self->priv->font_desc);
+	pango_font_description_set_size (self->priv->font_desc, _tmp0_ + PANGO_SCALE);
 	gtk_widget_modify_font ((GtkWidget*) self, self->priv->font_desc);
 }
 
 
 void document_view_shrink_font (DocumentView* self) {
+	gint _tmp0_;
 	g_return_if_fail (self != NULL);
-	pango_font_description_set_size (self->priv->font_desc, pango_font_description_get_size (self->priv->font_desc) - PANGO_SCALE);
+	_tmp0_ = pango_font_description_get_size (self->priv->font_desc);
+	pango_font_description_set_size (self->priv->font_desc, _tmp0_ - PANGO_SCALE);
 	gtk_widget_modify_font ((GtkWidget*) self, self->priv->font_desc);
 }
 
 
-char* document_view_get_indentation_style (DocumentView* self) {
-	char* result = NULL;
+gchar* document_view_get_indentation_style (DocumentView* self) {
+	gchar* result = NULL;
+	gboolean _tmp0_;
+	gchar* _tmp3_;
 	g_return_val_if_fail (self != NULL, NULL);
-	if (gtk_source_view_get_insert_spaces_instead_of_tabs ((GtkSourceView*) self)) {
-		result = g_strnfill ((gsize) gtk_source_view_get_tab_width ((GtkSourceView*) self), ' ');
+	_tmp0_ = gtk_source_view_get_insert_spaces_instead_of_tabs ((GtkSourceView*) self);
+	if (_tmp0_) {
+		guint _tmp1_;
+		gchar* _tmp2_ = NULL;
+		_tmp1_ = gtk_source_view_get_tab_width ((GtkSourceView*) self);
+		_tmp2_ = g_strnfill ((gsize) _tmp1_, ' ');
+		result = _tmp2_;
 		return result;
 	}
-	result = g_strdup ("\t");
+	_tmp3_ = g_strdup ("\t");
+	result = _tmp3_;
 	return result;
 }
 
 
-static glong string_get_length (const char* self) {
-	glong result;
-	g_return_val_if_fail (self != NULL, 0L);
-	result = g_utf8_strlen (self, (gssize) (-1));
+static gchar string_get (const gchar* self, glong index) {
+	gchar result = '\0';
+	g_return_val_if_fail (self != NULL, '\0');
+	result = ((gchar*) self)[index];
 	return result;
 }
 
@@ -415,16 +521,33 @@ static gboolean document_view_on_backspace (DocumentView* self, GdkEventKey* eve
 	gboolean _tmp1_ = FALSE;
 	gboolean _tmp2_ = FALSE;
 	gboolean _tmp3_ = FALSE;
+	gboolean _tmp4_;
 	GtkTextIter iter_start = {0};
 	GtkTextIter iter_insert = {0};
-	char* text;
+	GtkTextBuffer* _tmp9_ = NULL;
+	GtkTextBuffer* _tmp10_ = NULL;
+	GtkTextMark* _tmp11_ = NULL;
+	GtkTextIter _tmp12_ = {0};
+	GtkTextBuffer* _tmp13_ = NULL;
+	gint _tmp14_;
+	GtkTextIter _tmp15_ = {0};
+	GtkTextBuffer* _tmp16_ = NULL;
+	gchar* _tmp17_ = NULL;
+	gchar* text;
 	gint nb_chars_to_delete;
 	gboolean between;
+	gboolean _tmp23_;
+	GtkTextBuffer* _tmp24_ = NULL;
+	GtkTextBuffer* _tmp25_ = NULL;
+	GtkTextBuffer* _tmp26_ = NULL;
 	g_return_val_if_fail (self != NULL, FALSE);
-	if (!g_settings_get_boolean (self->priv->editor_settings, "insert-spaces")) {
+	_tmp4_ = g_settings_get_boolean (self->priv->editor_settings, "insert-spaces");
+	if (!_tmp4_) {
 		_tmp3_ = TRUE;
 	} else {
-		_tmp3_ = !g_settings_get_boolean (self->priv->editor_settings, "forget-no-tabs");
+		gboolean _tmp5_;
+		_tmp5_ = g_settings_get_boolean (self->priv->editor_settings, "forget-no-tabs");
+		_tmp3_ = !_tmp5_;
 	}
 	if (_tmp3_) {
 		_tmp2_ = TRUE;
@@ -434,21 +557,36 @@ static gboolean document_view_on_backspace (DocumentView* self, GdkEventKey* eve
 	if (_tmp2_) {
 		_tmp1_ = TRUE;
 	} else {
-		_tmp1_ = gtk_text_buffer_get_has_selection (gtk_text_view_get_buffer ((GtkTextView*) self));
+		GtkTextBuffer* _tmp6_ = NULL;
+		gboolean _tmp7_;
+		_tmp6_ = gtk_text_view_get_buffer ((GtkTextView*) self);
+		_tmp7_ = gtk_text_buffer_get_has_selection (_tmp6_);
+		_tmp1_ = _tmp7_;
 	}
 	if (_tmp1_) {
 		_tmp0_ = TRUE;
 	} else {
-		_tmp0_ = gtk_source_view_get_tab_width ((GtkSourceView*) self) == 1;
+		guint _tmp8_;
+		_tmp8_ = gtk_source_view_get_tab_width ((GtkSourceView*) self);
+		_tmp0_ = _tmp8_ == 1;
 	}
 	if (_tmp0_) {
 		result = FALSE;
 		return result;
 	}
-	gtk_text_buffer_get_iter_at_mark (gtk_text_view_get_buffer ((GtkTextView*) self), &iter_insert, gtk_text_buffer_get_insert (gtk_text_view_get_buffer ((GtkTextView*) self)));
-	gtk_text_buffer_get_iter_at_line (gtk_text_view_get_buffer ((GtkTextView*) self), &iter_start, gtk_text_iter_get_line (&iter_insert));
-	text = gtk_text_buffer_get_text (gtk_text_view_get_buffer ((GtkTextView*) self), &iter_start, &iter_insert, FALSE);
-	if (_vala_strcmp0 (text, "") == 0) {
+	_tmp9_ = gtk_text_view_get_buffer ((GtkTextView*) self);
+	_tmp10_ = gtk_text_view_get_buffer ((GtkTextView*) self);
+	_tmp11_ = gtk_text_buffer_get_insert (_tmp10_);
+	gtk_text_buffer_get_iter_at_mark (_tmp9_, &_tmp12_, _tmp11_);
+	iter_insert = _tmp12_;
+	_tmp13_ = gtk_text_view_get_buffer ((GtkTextView*) self);
+	_tmp14_ = gtk_text_iter_get_line (&iter_insert);
+	gtk_text_buffer_get_iter_at_line (_tmp13_, &_tmp15_, _tmp14_);
+	iter_start = _tmp15_;
+	_tmp16_ = gtk_text_view_get_buffer ((GtkTextView*) self);
+	_tmp17_ = gtk_text_buffer_get_text (_tmp16_, &iter_start, &iter_insert, FALSE);
+	text = _tmp17_;
+	if (g_strcmp0 (text, "") == 0) {
 		result = FALSE;
 		_g_free0 (text);
 		return result;
@@ -459,22 +597,29 @@ static gboolean document_view_on_backspace (DocumentView* self, GdkEventKey* eve
 		glong i;
 		i = (glong) 0;
 		{
-			gboolean _tmp4_;
-			_tmp4_ = TRUE;
+			gboolean _tmp18_;
+			_tmp18_ = TRUE;
 			while (TRUE) {
-				if (!_tmp4_) {
+				gint _tmp19_;
+				gchar _tmp20_;
+				gchar _tmp21_;
+				guint _tmp22_;
+				if (!_tmp18_) {
 					i++;
 				}
-				_tmp4_ = FALSE;
-				if (!(i < string_get_length (text))) {
+				_tmp18_ = FALSE;
+				_tmp19_ = strlen (text);
+				if (!(i < _tmp19_)) {
 					break;
 				}
-				if (g_utf8_get_char (g_utf8_offset_to_pointer (text, i)) == '\t') {
+				_tmp20_ = string_get (text, i);
+				if (_tmp20_ == '\t') {
 					nb_chars_to_delete = 1;
 					between = TRUE;
 					continue;
 				}
-				if (g_utf8_get_char (g_utf8_offset_to_pointer (text, i)) != ' ') {
+				_tmp21_ = string_get (text, i);
+				if (_tmp21_ != ' ') {
 					result = FALSE;
 					_g_free0 (text);
 					return result;
@@ -485,21 +630,26 @@ static gboolean document_view_on_backspace (DocumentView* self, GdkEventKey* eve
 					continue;
 				}
 				nb_chars_to_delete++;
-				if (nb_chars_to_delete == gtk_source_view_get_tab_width ((GtkSourceView*) self)) {
+				_tmp22_ = gtk_source_view_get_tab_width ((GtkSourceView*) self);
+				if (nb_chars_to_delete == _tmp22_) {
 					between = TRUE;
 				}
 			}
 		}
 	}
 	iter_start = iter_insert;
-	if (!gtk_text_iter_backward_chars (&iter_start, nb_chars_to_delete)) {
+	_tmp23_ = gtk_text_iter_backward_chars (&iter_start, nb_chars_to_delete);
+	if (!_tmp23_) {
 		result = FALSE;
 		_g_free0 (text);
 		return result;
 	}
-	gtk_text_buffer_begin_user_action (gtk_text_view_get_buffer ((GtkTextView*) self));
-	g_signal_emit_by_name (gtk_text_view_get_buffer ((GtkTextView*) self), "delete-range", &iter_start, &iter_insert);
-	gtk_text_buffer_end_user_action (gtk_text_view_get_buffer ((GtkTextView*) self));
+	_tmp24_ = gtk_text_view_get_buffer ((GtkTextView*) self);
+	gtk_text_buffer_begin_user_action (_tmp24_);
+	_tmp25_ = gtk_text_view_get_buffer ((GtkTextView*) self);
+	g_signal_emit_by_name (_tmp25_, "delete-range", &iter_start, &iter_insert);
+	_tmp26_ = gtk_text_view_get_buffer ((GtkTextView*) self);
+	gtk_text_buffer_end_user_action (_tmp26_);
 	result = TRUE;
 	_g_free0 (text);
 	return result;
@@ -539,16 +689,4 @@ GType document_view_get_type (void) {
 }
 
 
-static int _vala_strcmp0 (const char * str1, const char * str2) {
-	if (str1 == NULL) {
-		return -(str1 != str2);
-	}
-	if (str2 == NULL) {
-		return str1 != str2;
-	}
-	return strcmp (str1, str2);
-}
-
-
-
 
diff --git a/src/C/documents_panel.c b/src/C/documents_panel.c
index 1c7dd31..0de7046 100644
--- a/src/C/documents_panel.c
+++ b/src/C/documents_panel.c
@@ -1,4 +1,4 @@
-/* documents_panel.c generated by valac 0.10.3, the Vala compiler
+/* documents_panel.c generated by valac 0.12.1, the Vala compiler
  * generated from documents_panel.vala, do not modify */
 
 /*
@@ -108,11 +108,11 @@ static void _lambda21_ (GtkNotebookPage* page, guint page_num, DocumentsPanel* s
 static void documents_panel_set_active_tab (DocumentsPanel* self, DocumentTab* value);
 static void __lambda21__gtk_notebook_switch_page (GtkNotebook* _sender, GtkNotebookPage* page, guint page_num, gpointer self);
 void documents_panel_add_tab (DocumentsPanel* self, DocumentTab* tab, gint position, gboolean jump_to);
+static Block4Data* block4_data_ref (Block4Data* _data4_);
+static void block4_data_unref (Block4Data* _data4_);
 GtkHBox* document_tab_get_label (DocumentTab* self);
 static gboolean _lambda22_ (GdkEventButton* event, Block4Data* _data4_);
 static gboolean __lambda22__gtk_widget_button_press_event (GtkWidget* _sender, GdkEventButton* event, gpointer self);
-static Block4Data* block4_data_ref (Block4Data* _data4_);
-static void block4_data_unref (Block4Data* _data4_);
 void documents_panel_remove_tab (DocumentsPanel* self, DocumentTab* tab);
 GType document_get_type (void) G_GNUC_CONST;
 Document* document_tab_get_document (DocumentTab* self);
@@ -120,14 +120,15 @@ gboolean document_clean_build_files (Document* self, MainWindow* window);
 void documents_panel_remove_all_tabs (DocumentsPanel* self);
 DocumentTab* documents_panel_get_active_tab (DocumentsPanel* self);
 static void documents_panel_finalize (GObject* obj);
-static void documents_panel_get_property (GObject * object, guint property_id, GValue * value, GParamSpec * pspec);
-static void documents_panel_set_property (GObject * object, guint property_id, const GValue * value, GParamSpec * pspec);
-
+static void _vala_documents_panel_get_property (GObject * object, guint property_id, GValue * value, GParamSpec * pspec);
+static void _vala_documents_panel_set_property (GObject * object, guint property_id, const GValue * value, GParamSpec * pspec);
 
 
 static void _lambda21_ (GtkNotebookPage* page, guint page_num, DocumentsPanel* self) {
+	GtkWidget* _tmp0_ = NULL;
 	g_return_if_fail (page != NULL);
-	documents_panel_set_active_tab (self, DOCUMENT_TAB (gtk_notebook_get_nth_page ((GtkNotebook*) self, (gint) page_num)));
+	_tmp0_ = gtk_notebook_get_nth_page ((GtkNotebook*) self, (gint) page_num);
+	documents_panel_set_active_tab (self, DOCUMENT_TAB (_tmp0_));
 }
 
 
@@ -137,9 +138,9 @@ static void __lambda21__gtk_notebook_switch_page (GtkNotebook* _sender, GtkNoteb
 
 
 DocumentsPanel* documents_panel_construct (GType object_type, MainWindow* main_window) {
-	DocumentsPanel * self;
+	DocumentsPanel * self = NULL;
 	g_return_val_if_fail (main_window != NULL, NULL);
-	self = g_object_newv (object_type, 0, NULL);
+	self = (DocumentsPanel*) g_object_new (object_type, NULL);
 	self->priv->main_window = main_window;
 	gtk_notebook_set_scrollable ((GtkNotebook*) self, TRUE);
 	g_signal_connect_object ((GtkNotebook*) self, "switch-page", (GCallback) __lambda21__gtk_notebook_switch_page, self, 0);
@@ -152,26 +153,6 @@ DocumentsPanel* documents_panel_new (MainWindow* main_window) {
 }
 
 
-static gboolean _lambda22_ (GdkEventButton* event, Block4Data* _data4_) {
-	DocumentsPanel * self;
-	gboolean result = FALSE;
-	self = _data4_->self;
-	if ((*event).button == 3) {
-		gtk_notebook_set_current_page ((GtkNotebook*) self, gtk_notebook_page_num ((GtkNotebook*) self, (GtkWidget*) _data4_->tab));
-		g_signal_emit_by_name (self, "right-click", event);
-	}
-	result = FALSE;
-	return result;
-}
-
-
-static gboolean __lambda22__gtk_widget_button_press_event (GtkWidget* _sender, GdkEventButton* event, gpointer self) {
-	gboolean result;
-	result = _lambda22_ (event, self);
-	return result;
-}
-
-
 static gpointer _g_object_ref0 (gpointer self) {
 	return self ? g_object_ref (self) : NULL;
 }
@@ -192,9 +173,34 @@ static void block4_data_unref (Block4Data* _data4_) {
 }
 
 
+static gboolean _lambda22_ (GdkEventButton* event, Block4Data* _data4_) {
+	DocumentsPanel * self;
+	gboolean result = FALSE;
+	self = _data4_->self;
+	if ((*event).button == 3) {
+		gint _tmp0_;
+		_tmp0_ = gtk_notebook_page_num ((GtkNotebook*) self, (GtkWidget*) _data4_->tab);
+		gtk_notebook_set_current_page ((GtkNotebook*) self, _tmp0_);
+		g_signal_emit_by_name (self, "right-click", event);
+	}
+	result = FALSE;
+	return result;
+}
+
+
+static gboolean __lambda22__gtk_widget_button_press_event (GtkWidget* _sender, GdkEventButton* event, gpointer self) {
+	gboolean result;
+	result = _lambda22_ (event, self);
+	return result;
+}
+
+
 void documents_panel_add_tab (DocumentsPanel* self, DocumentTab* tab, gint position, gboolean jump_to) {
 	Block4Data* _data4_;
+	GtkEventBox* _tmp0_ = NULL;
 	GtkEventBox* event_box;
+	GtkHBox* _tmp1_ = NULL;
+	gint _tmp2_;
 	gint i;
 	g_return_if_fail (self != NULL);
 	g_return_if_fail (tab != NULL);
@@ -202,35 +208,49 @@ void documents_panel_add_tab (DocumentsPanel* self, DocumentTab* tab, gint posit
 	_data4_->_ref_count_ = 1;
 	_data4_->self = g_object_ref (self);
 	_data4_->tab = _g_object_ref0 (tab);
-	event_box = g_object_ref_sink ((GtkEventBox*) gtk_event_box_new ());
-	gtk_container_add ((GtkContainer*) event_box, (GtkWidget*) document_tab_get_label (_data4_->tab));
+	_tmp0_ = (GtkEventBox*) gtk_event_box_new ();
+	event_box = g_object_ref_sink (_tmp0_);
+	_tmp1_ = document_tab_get_label (_data4_->tab);
+	gtk_container_add ((GtkContainer*) event_box, (GtkWidget*) _tmp1_);
 	g_signal_connect_data ((GtkWidget*) event_box, "button-press-event", (GCallback) __lambda22__gtk_widget_button_press_event, block4_data_ref (_data4_), (GClosureNotify) block4_data_unref, 0);
-	i = gtk_notebook_insert_page ((GtkNotebook*) self, (GtkWidget*) _data4_->tab, (GtkWidget*) event_box, position);
+	_tmp2_ = gtk_notebook_insert_page ((GtkNotebook*) self, (GtkWidget*) _data4_->tab, (GtkWidget*) event_box, position);
+	i = _tmp2_;
 	gtk_notebook_set_tab_reorderable ((GtkNotebook*) self, (GtkWidget*) _data4_->tab, TRUE);
 	if (jump_to) {
 		gtk_notebook_set_current_page ((GtkNotebook*) self, i);
 	}
 	_g_object_unref0 (event_box);
 	block4_data_unref (_data4_);
+	_data4_ = NULL;
 }
 
 
 void documents_panel_remove_tab (DocumentsPanel* self, DocumentTab* tab) {
+	GSettings* _tmp0_ = NULL;
 	GSettings* settings;
-	gboolean _tmp0_ = FALSE;
+	gboolean _tmp1_ = FALSE;
+	gboolean _tmp2_;
+	gint _tmp5_;
 	gint pos;
 	g_return_if_fail (self != NULL);
 	g_return_if_fail (tab != NULL);
-	settings = g_settings_new ("org.gnome.latexila.preferences.latex");
-	if (g_settings_get_boolean (settings, "no-confirm-clean")) {
-		_tmp0_ = g_settings_get_boolean (settings, "automatic-clean");
+	_tmp0_ = g_settings_new ("org.gnome.latexila.preferences.latex");
+	settings = _tmp0_;
+	_tmp2_ = g_settings_get_boolean (settings, "no-confirm-clean");
+	if (_tmp2_) {
+		gboolean _tmp3_;
+		_tmp3_ = g_settings_get_boolean (settings, "automatic-clean");
+		_tmp1_ = _tmp3_;
 	} else {
-		_tmp0_ = FALSE;
+		_tmp1_ = FALSE;
 	}
-	if (_tmp0_) {
-		document_clean_build_files (document_tab_get_document (tab), self->priv->main_window);
+	if (_tmp1_) {
+		Document* _tmp4_ = NULL;
+		_tmp4_ = document_tab_get_document (tab);
+		document_clean_build_files (_tmp4_, self->priv->main_window);
 	}
-	pos = gtk_notebook_page_num ((GtkNotebook*) self, (GtkWidget*) tab);
+	_tmp5_ = gtk_notebook_page_num ((GtkNotebook*) self, (GtkWidget*) tab);
+	pos = _tmp5_;
 	gtk_notebook_remove_page ((GtkNotebook*) self, pos);
 	_g_object_unref0 (settings);
 }
@@ -239,13 +259,19 @@ void documents_panel_remove_tab (DocumentsPanel* self, DocumentTab* tab) {
 void documents_panel_remove_all_tabs (DocumentsPanel* self) {
 	g_return_if_fail (self != NULL);
 	while (TRUE) {
+		gint _tmp0_;
 		gint n;
+		GtkWidget* _tmp1_ = NULL;
+		DocumentTab* _tmp2_;
 		DocumentTab* tab;
-		n = gtk_notebook_get_current_page ((GtkNotebook*) self);
+		_tmp0_ = gtk_notebook_get_current_page ((GtkNotebook*) self);
+		n = _tmp0_;
 		if (n == (-1)) {
 			break;
 		}
-		tab = _g_object_ref0 (DOCUMENT_TAB (gtk_notebook_get_nth_page ((GtkNotebook*) self, n)));
+		_tmp1_ = gtk_notebook_get_nth_page ((GtkNotebook*) self, n);
+		_tmp2_ = _g_object_ref0 (DOCUMENT_TAB (_tmp1_));
+		tab = _tmp2_;
 		documents_panel_remove_tab (self, tab);
 		_g_object_unref0 (tab);
 	}
@@ -263,7 +289,9 @@ DocumentTab* documents_panel_get_active_tab (DocumentsPanel* self) {
 static void documents_panel_set_active_tab (DocumentsPanel* self, DocumentTab* value) {
 	DocumentTab* _tmp0_;
 	g_return_if_fail (self != NULL);
-	self->priv->_active_tab = (_tmp0_ = _g_object_ref0 (value), _g_object_unref0 (self->priv->_active_tab), _tmp0_);
+	_tmp0_ = _g_object_ref0 (value);
+	_g_object_unref0 (self->priv->_active_tab);
+	self->priv->_active_tab = _tmp0_;
 	g_object_notify ((GObject *) self, "active-tab");
 }
 
@@ -271,8 +299,8 @@ static void documents_panel_set_active_tab (DocumentsPanel* self, DocumentTab* v
 static void documents_panel_class_init (DocumentsPanelClass * klass) {
 	documents_panel_parent_class = g_type_class_peek_parent (klass);
 	g_type_class_add_private (klass, sizeof (DocumentsPanelPrivate));
-	G_OBJECT_CLASS (klass)->get_property = documents_panel_get_property;
-	G_OBJECT_CLASS (klass)->set_property = documents_panel_set_property;
+	G_OBJECT_CLASS (klass)->get_property = _vala_documents_panel_get_property;
+	G_OBJECT_CLASS (klass)->set_property = _vala_documents_panel_set_property;
 	G_OBJECT_CLASS (klass)->finalize = documents_panel_finalize;
 	g_object_class_install_property (G_OBJECT_CLASS (klass), DOCUMENTS_PANEL_ACTIVE_TAB, g_param_spec_object ("active-tab", "active-tab", "active-tab", TYPE_DOCUMENT_TAB, G_PARAM_STATIC_NAME | G_PARAM_STATIC_NICK | G_PARAM_STATIC_BLURB | G_PARAM_READABLE));
 	g_signal_new ("right_click", TYPE_DOCUMENTS_PANEL, G_SIGNAL_RUN_LAST, 0, NULL, NULL, g_cclosure_marshal_VOID__POINTER, G_TYPE_NONE, 1, G_TYPE_POINTER);
@@ -304,7 +332,7 @@ GType documents_panel_get_type (void) {
 }
 
 
-static void documents_panel_get_property (GObject * object, guint property_id, GValue * value, GParamSpec * pspec) {
+static void _vala_documents_panel_get_property (GObject * object, guint property_id, GValue * value, GParamSpec * pspec) {
 	DocumentsPanel * self;
 	self = DOCUMENTS_PANEL (object);
 	switch (property_id) {
@@ -318,7 +346,7 @@ static void documents_panel_get_property (GObject * object, guint property_id, G
 }
 
 
-static void documents_panel_set_property (GObject * object, guint property_id, const GValue * value, GParamSpec * pspec) {
+static void _vala_documents_panel_set_property (GObject * object, guint property_id, const GValue * value, GParamSpec * pspec) {
 	DocumentsPanel * self;
 	self = DOCUMENTS_PANEL (object);
 	switch (property_id) {
@@ -333,4 +361,3 @@ static void documents_panel_set_property (GObject * object, guint property_id, c
 
 
 
-
diff --git a/src/C/encodings.c b/src/C/encodings.c
index 4a4cdf0..e12aa48 100644
--- a/src/C/encodings.c
+++ b/src/C/encodings.c
@@ -1,4 +1,4 @@
-/* encodings.c generated by valac 0.10.3, the Vala compiler
+/* encodings.c generated by valac 0.12.1, the Vala compiler
  * generated from encodings.vala, do not modify */
 
 /*
@@ -29,8 +29,6 @@
 
 
 
-const char* ENCODINGS_CHARSETS[60] = {"ISO-8859-1", "ISO-8859-2", "ISO-8859-3", "ISO-8859-4", "ISO-8859-5", "ISO-8859-7", "ISO-8859-9", "ISO-8859-10", "ISO-8859-13", "ISO-8859-14", "ISO-8859-15", "ISO-8859-16", "UCS-2", "UCS-2BE", "UCS-2LE", "UCS-4", "UCS-4BE", "UCS-4LE", "UTF-16", "UTF-16BE", "UTF-16LE", "UTF-32", "UTF-32BE", "UTF-32LE", "UTF-7", "ISO-8859-6", "ISO-8859-8", "CP1255", "CP1256", "CP862", "EUC-JP", "SHIFT_JIS", "CP932", "ISO-2022-JP", "ISO-2022-JP-2", "EUC-CN", "GBK", "CP936", "GB18030", "EUC-TW", "BIG5", "CP950", "BIG5-HKSCS", "ISO-2022-CN", "ISO-2022-CN-EXT", "EUC-KR", "CP949", "ISO-2022-KR", "JOHAB", "ARMSCII-8", "ISO-8859-11", "WINDOWS-1250", "WINDOWS-1251", "WINDOWS-1252", "WINDOWS-1253", "WINDOWS-1254", "WINDOWS-1255", "WINDOWS-1256", "WINDOWS-1257", "WINDOWS-1258"};
-
-
+const gchar* ENCODINGS_CHARSETS[60] = {"ISO-8859-1", "ISO-8859-2", "ISO-8859-3", "ISO-8859-4", "ISO-8859-5", "ISO-8859-7", "ISO-8859-9", "ISO-8859-10", "ISO-8859-13", "ISO-8859-14", "ISO-8859-15", "ISO-8859-16", "UCS-2", "UCS-2BE", "UCS-2LE", "UCS-4", "UCS-4BE", "UCS-4LE", "UTF-16", "UTF-16BE", "UTF-16LE", "UTF-32", "UTF-32BE", "UTF-32LE", "UTF-7", "ISO-8859-6", "ISO-8859-8", "CP1255", "CP1256", "CP862", "EUC-JP", "SHIFT_JIS", "CP932", "ISO-2022-JP", "ISO-2022-JP-2", "EUC-CN", "GBK", "CP936", "GB18030", "EUC-TW", "BIG5", "CP950", "BIG5-HKSCS", "ISO-2022-CN", "ISO-2022-CN-EXT", "EUC-KR", "CP949", "ISO-2022-KR", "JOHAB", "ARMSCII-8", "ISO-8859-11", "WINDOWS-1250", "WINDOWS-1251", "WINDOWS-1252", "WINDOWS-1253", "WINDOWS-1254", "WINDOWS-1255", "WINDOWS-1256", "WINDOWS-1257", "WINDOWS-1258"};
 
 
diff --git a/src/C/file_browser.c b/src/C/file_browser.c
index 69ddd27..7be6aea 100644
--- a/src/C/file_browser.c
+++ b/src/C/file_browser.c
@@ -1,4 +1,4 @@
-/* file_browser.c generated by valac 0.10.3, the Vala compiler
+/* file_browser.c generated by valac 0.12.1, the Vala compiler
  * generated from file_browser.vala, do not modify */
 
 /*
@@ -67,6 +67,7 @@ typedef struct _BuildViewClass BuildViewClass;
 
 #define FILE_BROWSER_TYPE_FILE_COLUMN (file_browser_file_column_get_type ())
 #define _g_object_unref0(var) ((var == NULL) ? NULL : (var = (g_object_unref (var), NULL)))
+typedef struct _Block11Data Block11Data;
 
 #define TYPE_DOCUMENT_TAB (document_tab_get_type ())
 #define DOCUMENT_TAB(obj) (G_TYPE_CHECK_INSTANCE_CAST ((obj), TYPE_DOCUMENT_TAB, DocumentTab))
@@ -87,7 +88,6 @@ typedef struct _DocumentTabClass DocumentTabClass;
 
 typedef struct _Document Document;
 typedef struct _DocumentClass DocumentClass;
-typedef struct _Block11Data Block11Data;
 #define _g_free0(var) (var = (g_free (var), NULL))
 
 #define TYPE_APP_SETTINGS (app_settings_get_type ())
@@ -116,7 +116,7 @@ typedef struct _BuildTool BuildTool;
 typedef struct _BuildToolRunner BuildToolRunner;
 typedef struct _BuildToolRunnerClass BuildToolRunnerClass;
 #define _g_error_free0(var) ((var == NULL) ? NULL : (var = (g_error_free (var), NULL)))
-#define __g_list_free_g_object_unref0(var) ((var == NULL) ? NULL : (var = (_g_list_free_g_object_unref (var), NULL)))
+#define __g_list_free__g_object_unref0_0(var) ((var == NULL) ? NULL : (var = (_g_list_free__g_object_unref0_ (var), NULL)))
 
 struct _FileBrowser {
 	GtkVBox parent_instance;
@@ -163,17 +163,17 @@ struct _Block11Data {
 
 struct _BuildJob {
 	gboolean must_succeed;
-	char* post_processor;
-	char* command;
-	char** command_args;
+	gchar* post_processor;
+	gchar* command;
+	gchar** command_args;
 	gint command_args_length1;
 };
 
 struct _BuildTool {
-	char* description;
-	char* extensions;
-	char* label;
-	char* icon;
+	gchar* description;
+	gchar* extensions;
+	gchar* label;
+	gchar* icon;
 	gboolean compilation;
 	GList* jobs;
 };
@@ -199,37 +199,37 @@ static void file_browser_init_list (FileBrowser* self);
 static void file_browser_init_settings (FileBrowser* self);
 static void file_browser_fill_stores_with_dir (FileBrowser* self, GFile* dir);
 void file_browser_refresh (FileBrowser* self);
-static void _file_browser_refresh_g_settings_changed (GSettings* _sender, const char* key, gpointer self);
+static void _file_browser_refresh_g_settings_changed (GSettings* _sender, const gchar* key, gpointer self);
 static void file_browser_on_refresh (FileBrowser* self);
-static void _file_browser_on_refresh_g_settings_changed (GSettings* _sender, const char* key, gpointer self);
-static gboolean _lambda58_ (FileBrowser* self);
-static gboolean __lambda58__gsource_func (gpointer self);
-static GtkButton* file_browser_get_toolbar_button (FileBrowser* self, const char* stock_id);
-static void _lambda51_ (FileBrowser* self);
-static void __lambda51__gtk_button_clicked (GtkButton* _sender, gpointer self);
+static void _file_browser_on_refresh_g_settings_changed (GSettings* _sender, const gchar* key, gpointer self);
+static gboolean _lambda59_ (FileBrowser* self);
+static gboolean __lambda59__gsource_func (gpointer self);
+static Block11Data* block11_data_ref (Block11Data* _data11_);
+static void block11_data_unref (Block11Data* _data11_);
+static GtkButton* file_browser_get_toolbar_button (FileBrowser* self, const gchar* stock_id);
 static void _lambda52_ (FileBrowser* self);
 static void __lambda52__gtk_button_clicked (GtkButton* _sender, gpointer self);
 static void _lambda53_ (FileBrowser* self);
+static void __lambda53__gtk_button_clicked (GtkButton* _sender, gpointer self);
+static void _lambda54_ (FileBrowser* self);
 GType document_tab_get_type (void) G_GNUC_CONST;
 DocumentTab* main_window_get_active_tab (MainWindow* self);
 GType document_get_type (void) G_GNUC_CONST;
 Document* main_window_get_active_document (MainWindow* self);
 GFile* document_get_location (Document* self);
-static void __lambda53__gtk_button_clicked (GtkButton* _sender, gpointer self);
-static void _lambda54_ (Block11Data* _data11_);
-static void __lambda54__g_object_notify (GObject* _sender, GParamSpec* pspec, gpointer self);
+static void __lambda54__gtk_button_clicked (GtkButton* _sender, gpointer self);
+static void _lambda55_ (Block11Data* _data11_);
+static void __lambda55__g_object_notify (GObject* _sender, GParamSpec* pspec, gpointer self);
 static void _file_browser_refresh_gtk_button_clicked (GtkButton* _sender, gpointer self);
-static Block11Data* block11_data_ref (Block11Data* _data11_);
-static void block11_data_unref (Block11Data* _data11_);
-static void _lambda55_ (FileBrowser* self);
-static void __lambda55__gtk_combo_box_changed (GtkComboBox* _sender, gpointer self);
+static void _lambda56_ (FileBrowser* self);
+static void __lambda56__gtk_combo_box_changed (GtkComboBox* _sender, gpointer self);
 static gint file_browser_on_sort (FileBrowser* self, GtkTreeModel* model, GtkTreeIter* a, GtkTreeIter* b);
 static gint _file_browser_on_sort_gtk_tree_iter_compare_func (GtkTreeModel* model, GtkTreeIter* a, GtkTreeIter* b, gpointer self);
 GtkWidget* utils_add_scrollbar (GtkWidget* child);
-static void _lambda56_ (GtkTreePath* path, FileBrowser* self);
+static void _lambda57_ (GtkTreePath* path, FileBrowser* self);
 GType app_settings_get_type (void) G_GNUC_CONST;
 AppSettings* app_settings_get_default (void);
-char* utils_get_extension (const char* path);
+gchar* utils_get_extension (const gchar* path);
 GType build_tool_get_type (void) G_GNUC_CONST;
 GType build_job_get_type (void) G_GNUC_CONST;
 BuildJob* build_job_dup (const BuildJob* self);
@@ -248,17 +248,16 @@ GType build_tool_runner_get_type (void) G_GNUC_CONST;
 void app_settings_get_build_tool_view_pdf (AppSettings* self, BuildTool* result);
 void app_settings_get_build_tool_view_ps (AppSettings* self, BuildTool* result);
 DocumentTab* main_window_open_document (MainWindow* self, GFile* location);
-static void __lambda56__gtk_tree_view_row_activated (GtkTreeView* _sender, GtkTreePath* path, GtkTreeViewColumn* column, gpointer self);
+static void __lambda57__gtk_tree_view_row_activated (GtkTreeView* _sender, GtkTreePath* path, GtkTreeViewColumn* column, gpointer self);
 void file_browser_refresh_if_in_dir (FileBrowser* self, GFile* dir);
-static void file_browser_insert_file (FileBrowser* self, gboolean is_dir, const char* pixbuf, const char* basename);
-static gboolean _vala_string_array_contains (char** stack, int stack_length, char* needle);
-static void _g_list_free_g_object_unref (GList* self);
+static void file_browser_insert_file (FileBrowser* self, gboolean is_dir, const gchar* pixbuf, const gchar* basename);
+static gboolean _vala_string_array_contains (gchar** stack, int stack_length, gchar* needle);
+static void _g_object_unref0_ (gpointer var);
+static void _g_list_free__g_object_unref0_ (GList* self);
 static void file_browser_finalize (GObject* obj);
 static void _vala_array_destroy (gpointer array, gint array_length, GDestroyNotify destroy_func);
 static void _vala_array_free (gpointer array, gint array_length, GDestroyNotify destroy_func);
 static gint _vala_array_length (gpointer array);
-static int _vala_strcmp0 (const char * str1, const char * str2);
-
 
 
 static GType file_browser_parent_dir_column_get_type (void) {
@@ -287,11 +286,13 @@ static GType file_browser_file_column_get_type (void) {
 
 FileBrowser* file_browser_construct (GType object_type, MainWindow* main_window) {
 	FileBrowser * self = NULL;
-	BuildView* _tmp0_;
+	BuildView* _tmp0_ = NULL;
 	g_return_val_if_fail (main_window != NULL, NULL);
 	self = (FileBrowser*) g_object_new (object_type, "spacing", 3, NULL);
 	self->priv->main_window = main_window;
-	self->priv->build_view = (_tmp0_ = main_window_get_build_view (main_window), _g_object_unref0 (self->priv->build_view), _tmp0_);
+	_tmp0_ = main_window_get_build_view (main_window);
+	_g_object_unref0 (self->priv->build_view);
+	self->priv->build_view = _tmp0_;
 	file_browser_init_toolbar (self);
 	file_browser_init_combo_box (self);
 	file_browser_init_list (self);
@@ -307,31 +308,35 @@ FileBrowser* file_browser_new (MainWindow* main_window) {
 }
 
 
-static void _file_browser_refresh_g_settings_changed (GSettings* _sender, const char* key, gpointer self) {
+static void _file_browser_refresh_g_settings_changed (GSettings* _sender, const gchar* key, gpointer self) {
 	file_browser_refresh (self);
 }
 
 
-static void _file_browser_on_refresh_g_settings_changed (GSettings* _sender, const char* key, gpointer self) {
+static void _file_browser_on_refresh_g_settings_changed (GSettings* _sender, const gchar* key, gpointer self) {
 	file_browser_on_refresh (self);
 }
 
 
 static void file_browser_init_settings (FileBrowser* self) {
-	GSettings* _tmp0_;
-	GSettings* _tmp1_;
+	GSettings* _tmp0_ = NULL;
+	GSettings* _tmp1_ = NULL;
 	g_return_if_fail (self != NULL);
-	self->priv->settings = (_tmp0_ = g_settings_new ("org.gnome.latexila.preferences.file-browser"), _g_object_unref0 (self->priv->settings), _tmp0_);
+	_tmp0_ = g_settings_new ("org.gnome.latexila.preferences.file-browser");
+	_g_object_unref0 (self->priv->settings);
+	self->priv->settings = _tmp0_;
 	g_signal_connect_object (self->priv->settings, "changed::show-all-files", (GCallback) _file_browser_refresh_g_settings_changed, self, 0);
 	g_signal_connect_object (self->priv->settings, "changed::show-all-files-except", (GCallback) _file_browser_refresh_g_settings_changed, self, 0);
 	g_signal_connect_object (self->priv->settings, "changed::show-hidden-files", (GCallback) _file_browser_refresh_g_settings_changed, self, 0);
 	g_signal_connect_object (self->priv->settings, "changed::file-extensions", (GCallback) _file_browser_on_refresh_g_settings_changed, self, 0);
-	self->priv->latex_settings = (_tmp1_ = g_settings_new ("org.gnome.latexila.preferences.latex"), _g_object_unref0 (self->priv->latex_settings), _tmp1_);
+	_tmp1_ = g_settings_new ("org.gnome.latexila.preferences.latex");
+	_g_object_unref0 (self->priv->latex_settings);
+	self->priv->latex_settings = _tmp1_;
 	g_signal_connect_object (self->priv->latex_settings, "changed::clean-extensions", (GCallback) _file_browser_on_refresh_g_settings_changed, self, 0);
 }
 
 
-static gboolean _lambda58_ (FileBrowser* self) {
+static gboolean _lambda59_ (FileBrowser* self) {
 	gboolean result = FALSE;
 	self->priv->timeout_id = (guint) 0;
 	file_browser_refresh (self);
@@ -340,78 +345,120 @@ static gboolean _lambda58_ (FileBrowser* self) {
 }
 
 
-static gboolean __lambda58__gsource_func (gpointer self) {
+static gboolean __lambda59__gsource_func (gpointer self) {
 	gboolean result;
-	result = _lambda58_ (self);
+	result = _lambda59_ (self);
 	return result;
 }
 
 
 static void file_browser_on_refresh (FileBrowser* self) {
+	guint _tmp0_;
 	g_return_if_fail (self != NULL);
 	if (self->priv->timeout_id != 0) {
 		g_source_remove (self->priv->timeout_id);
 	}
-	self->priv->timeout_id = g_timeout_add_seconds_full (G_PRIORITY_DEFAULT, (guint) 2, __lambda58__gsource_func, g_object_ref (self), g_object_unref);
+	_tmp0_ = g_timeout_add_seconds_full (G_PRIORITY_DEFAULT, (guint) 2, __lambda59__gsource_func, g_object_ref (self), g_object_unref);
+	self->priv->timeout_id = _tmp0_;
 }
 
 
-static void _lambda51_ (FileBrowser* self) {
+static Block11Data* block11_data_ref (Block11Data* _data11_) {
+	g_atomic_int_inc (&_data11_->_ref_count_);
+	return _data11_;
+}
+
+
+static void block11_data_unref (Block11Data* _data11_) {
+	if (g_atomic_int_dec_and_test (&_data11_->_ref_count_)) {
+		_g_object_unref0 (_data11_->self);
+		_g_object_unref0 (_data11_->jump_button);
+		g_slice_free (Block11Data, _data11_);
+	}
+}
+
+
+static void _lambda52_ (FileBrowser* self) {
+	const gchar* _tmp0_ = NULL;
+	GFile* _tmp1_ = NULL;
 	GFile* home_dir;
-	home_dir = g_file_new_for_path (g_get_home_dir ());
+	_tmp0_ = g_get_home_dir ();
+	_tmp1_ = g_file_new_for_path (_tmp0_);
+	home_dir = _tmp1_;
 	file_browser_fill_stores_with_dir (self, home_dir);
 	_g_object_unref0 (home_dir);
 }
 
 
-static void __lambda51__gtk_button_clicked (GtkButton* _sender, gpointer self) {
-	_lambda51_ (self);
+static void __lambda52__gtk_button_clicked (GtkButton* _sender, gpointer self) {
+	_lambda52_ (self);
 }
 
 
-static void _lambda52_ (FileBrowser* self) {
+static void _lambda53_ (FileBrowser* self) {
+	GFile* _tmp0_ = NULL;
 	GFile* parent;
-	parent = g_file_get_parent (self->priv->current_directory);
+	_tmp0_ = g_file_get_parent (self->priv->current_directory);
+	parent = _tmp0_;
 	g_return_if_fail (parent != NULL);
 	file_browser_fill_stores_with_dir (self, parent);
 	_g_object_unref0 (parent);
 }
 
 
-static void __lambda52__gtk_button_clicked (GtkButton* _sender, gpointer self) {
-	_lambda52_ (self);
+static void __lambda53__gtk_button_clicked (GtkButton* _sender, gpointer self) {
+	_lambda53_ (self);
 }
 
 
-static void _lambda53_ (FileBrowser* self) {
+static void _lambda54_ (FileBrowser* self) {
 	gboolean _tmp0_ = FALSE;
-	GFile* _tmp1_;
-	if (main_window_get_active_tab (self->priv->main_window) == NULL) {
+	DocumentTab* _tmp1_ = NULL;
+	Document* _tmp4_ = NULL;
+	GFile* _tmp5_ = NULL;
+	GFile* _tmp6_ = NULL;
+	GFile* _tmp7_;
+	_tmp1_ = main_window_get_active_tab (self->priv->main_window);
+	if (_tmp1_ == NULL) {
 		_tmp0_ = TRUE;
 	} else {
-		_tmp0_ = document_get_location (main_window_get_active_document (self->priv->main_window)) == NULL;
+		Document* _tmp2_ = NULL;
+		GFile* _tmp3_ = NULL;
+		_tmp2_ = main_window_get_active_document (self->priv->main_window);
+		_tmp3_ = document_get_location (_tmp2_);
+		_tmp0_ = _tmp3_ == NULL;
 	}
 	if (_tmp0_) {
 		return;
 	}
-	file_browser_fill_stores_with_dir (self, _tmp1_ = g_file_get_parent (document_get_location (main_window_get_active_document (self->priv->main_window))));
-	_g_object_unref0 (_tmp1_);
+	_tmp4_ = main_window_get_active_document (self->priv->main_window);
+	_tmp5_ = document_get_location (_tmp4_);
+	_tmp6_ = g_file_get_parent (_tmp5_);
+	_tmp7_ = _tmp6_;
+	file_browser_fill_stores_with_dir (self, _tmp7_);
+	_g_object_unref0 (_tmp7_);
 }
 
 
-static void __lambda53__gtk_button_clicked (GtkButton* _sender, gpointer self) {
-	_lambda53_ (self);
+static void __lambda54__gtk_button_clicked (GtkButton* _sender, gpointer self) {
+	_lambda54_ (self);
 }
 
 
-static void _lambda54_ (Block11Data* _data11_) {
+static void _lambda55_ (Block11Data* _data11_) {
 	FileBrowser * self;
 	gboolean _tmp0_ = FALSE;
+	DocumentTab* _tmp1_ = NULL;
 	self = _data11_->self;
-	if (main_window_get_active_tab (self->priv->main_window) == NULL) {
+	_tmp1_ = main_window_get_active_tab (self->priv->main_window);
+	if (_tmp1_ == NULL) {
 		_tmp0_ = TRUE;
 	} else {
-		_tmp0_ = document_get_location (main_window_get_active_document (self->priv->main_window)) == NULL;
+		Document* _tmp2_ = NULL;
+		GFile* _tmp3_ = NULL;
+		_tmp2_ = main_window_get_active_document (self->priv->main_window);
+		_tmp3_ = document_get_location (_tmp2_);
+		_tmp0_ = _tmp3_ == NULL;
 	}
 	if (_tmp0_) {
 		gtk_widget_set_sensitive ((GtkWidget*) _data11_->jump_button, FALSE);
@@ -421,8 +468,8 @@ static void _lambda54_ (Block11Data* _data11_) {
 }
 
 
-static void __lambda54__g_object_notify (GObject* _sender, GParamSpec* pspec, gpointer self) {
-	_lambda54_ (self);
+static void __lambda55__g_object_notify (GObject* _sender, GParamSpec* pspec, gpointer self) {
+	_lambda55_ (self);
 }
 
 
@@ -431,65 +478,73 @@ static void _file_browser_refresh_gtk_button_clicked (GtkButton* _sender, gpoint
 }
 
 
-static Block11Data* block11_data_ref (Block11Data* _data11_) {
-	g_atomic_int_inc (&_data11_->_ref_count_);
-	return _data11_;
-}
-
-
-static void block11_data_unref (Block11Data* _data11_) {
-	if (g_atomic_int_dec_and_test (&_data11_->_ref_count_)) {
-		_g_object_unref0 (_data11_->self);
-		_g_object_unref0 (_data11_->jump_button);
-		g_slice_free (Block11Data, _data11_);
-	}
-}
-
-
 static void file_browser_init_toolbar (FileBrowser* self) {
 	Block11Data* _data11_;
+	GtkHBox* _tmp0_ = NULL;
 	GtkHBox* hbox;
+	GtkButton* _tmp1_ = NULL;
 	GtkButton* home_button;
-	GtkButton* _tmp0_;
+	GtkButton* _tmp2_ = NULL;
+	GtkButton* _tmp3_ = NULL;
+	GtkButton* _tmp4_ = NULL;
 	GtkButton* refresh_button;
+	const gchar* _tmp5_ = NULL;
+	const gchar* _tmp6_ = NULL;
+	const gchar* _tmp7_ = NULL;
+	const gchar* _tmp8_ = NULL;
 	g_return_if_fail (self != NULL);
 	_data11_ = g_slice_new0 (Block11Data);
 	_data11_->_ref_count_ = 1;
 	_data11_->self = g_object_ref (self);
-	hbox = g_object_ref_sink ((GtkHBox*) gtk_hbox_new (TRUE, 0));
-	gtk_box_pack_start ((GtkBox*) self, (GtkWidget*) hbox, FALSE, FALSE, 0);
-	home_button = file_browser_get_toolbar_button (self, GTK_STOCK_HOME);
-	self->priv->parent_button = (_tmp0_ = file_browser_get_toolbar_button (self, GTK_STOCK_GO_UP), _g_object_unref0 (self->priv->parent_button), _tmp0_);
-	_data11_->jump_button = file_browser_get_toolbar_button (self, GTK_STOCK_JUMP_TO);
-	refresh_button = file_browser_get_toolbar_button (self, GTK_STOCK_REFRESH);
-	gtk_widget_set_tooltip_text ((GtkWidget*) home_button, _ ("Go to the home directory"));
-	gtk_widget_set_tooltip_text ((GtkWidget*) self->priv->parent_button, _ ("Go to the parent directory"));
-	gtk_widget_set_tooltip_text ((GtkWidget*) _data11_->jump_button, _ ("Go to the active document directory"));
-	gtk_widget_set_tooltip_text ((GtkWidget*) refresh_button, _ ("Refresh"));
-	gtk_box_pack_start ((GtkBox*) hbox, (GtkWidget*) home_button, TRUE, TRUE, 0);
-	gtk_box_pack_start ((GtkBox*) hbox, (GtkWidget*) self->priv->parent_button, TRUE, TRUE, 0);
-	gtk_box_pack_start ((GtkBox*) hbox, (GtkWidget*) _data11_->jump_button, TRUE, TRUE, 0);
-	gtk_box_pack_start ((GtkBox*) hbox, (GtkWidget*) refresh_button, TRUE, TRUE, 0);
-	g_signal_connect_object (home_button, "clicked", (GCallback) __lambda51__gtk_button_clicked, self, 0);
-	g_signal_connect_object (self->priv->parent_button, "clicked", (GCallback) __lambda52__gtk_button_clicked, self, 0);
-	g_signal_connect_object (_data11_->jump_button, "clicked", (GCallback) __lambda53__gtk_button_clicked, self, 0);
-	g_signal_connect_data ((GObject*) self->priv->main_window, "notify::active-document", (GCallback) __lambda54__g_object_notify, block11_data_ref (_data11_), (GClosureNotify) block11_data_unref, 0);
+	_tmp0_ = (GtkHBox*) gtk_hbox_new (TRUE, 0);
+	hbox = g_object_ref_sink (_tmp0_);
+	gtk_box_pack_start ((GtkBox*) self, (GtkWidget*) hbox, FALSE, FALSE, (guint) 0);
+	_tmp1_ = file_browser_get_toolbar_button (self, GTK_STOCK_HOME);
+	home_button = _tmp1_;
+	_tmp2_ = file_browser_get_toolbar_button (self, GTK_STOCK_GO_UP);
+	_g_object_unref0 (self->priv->parent_button);
+	self->priv->parent_button = _tmp2_;
+	_tmp3_ = file_browser_get_toolbar_button (self, GTK_STOCK_JUMP_TO);
+	_data11_->jump_button = _tmp3_;
+	_tmp4_ = file_browser_get_toolbar_button (self, GTK_STOCK_REFRESH);
+	refresh_button = _tmp4_;
+	_tmp5_ = _ ("Go to the home directory");
+	gtk_widget_set_tooltip_text ((GtkWidget*) home_button, _tmp5_);
+	_tmp6_ = _ ("Go to the parent directory");
+	gtk_widget_set_tooltip_text ((GtkWidget*) self->priv->parent_button, _tmp6_);
+	_tmp7_ = _ ("Go to the active document directory");
+	gtk_widget_set_tooltip_text ((GtkWidget*) _data11_->jump_button, _tmp7_);
+	_tmp8_ = _ ("Refresh");
+	gtk_widget_set_tooltip_text ((GtkWidget*) refresh_button, _tmp8_);
+	gtk_box_pack_start ((GtkBox*) hbox, (GtkWidget*) home_button, TRUE, TRUE, (guint) 0);
+	gtk_box_pack_start ((GtkBox*) hbox, (GtkWidget*) self->priv->parent_button, TRUE, TRUE, (guint) 0);
+	gtk_box_pack_start ((GtkBox*) hbox, (GtkWidget*) _data11_->jump_button, TRUE, TRUE, (guint) 0);
+	gtk_box_pack_start ((GtkBox*) hbox, (GtkWidget*) refresh_button, TRUE, TRUE, (guint) 0);
+	g_signal_connect_object (home_button, "clicked", (GCallback) __lambda52__gtk_button_clicked, self, 0);
+	g_signal_connect_object (self->priv->parent_button, "clicked", (GCallback) __lambda53__gtk_button_clicked, self, 0);
+	g_signal_connect_object (_data11_->jump_button, "clicked", (GCallback) __lambda54__gtk_button_clicked, self, 0);
+	g_signal_connect_data ((GObject*) self->priv->main_window, "notify::active-document", (GCallback) __lambda55__g_object_notify, block11_data_ref (_data11_), (GClosureNotify) block11_data_unref, 0);
 	g_signal_connect_object (refresh_button, "clicked", (GCallback) _file_browser_refresh_gtk_button_clicked, self, 0);
 	_g_object_unref0 (refresh_button);
 	_g_object_unref0 (home_button);
 	_g_object_unref0 (hbox);
 	block11_data_unref (_data11_);
+	_data11_ = NULL;
 }
 
 
-static GtkButton* file_browser_get_toolbar_button (FileBrowser* self, const char* stock_id) {
+static GtkButton* file_browser_get_toolbar_button (FileBrowser* self, const gchar* stock_id) {
 	GtkButton* result = NULL;
+	GtkButton* _tmp0_ = NULL;
 	GtkButton* button;
+	GtkImage* _tmp1_ = NULL;
 	GtkImage* image;
 	g_return_val_if_fail (self != NULL, NULL);
 	g_return_val_if_fail (stock_id != NULL, NULL);
-	button = g_object_ref_sink ((GtkButton*) gtk_button_new ());
-	image = g_object_ref_sink ((GtkImage*) gtk_image_new_from_stock (stock_id, GTK_ICON_SIZE_MENU));
+	_tmp0_ = (GtkButton*) gtk_button_new ();
+	button = g_object_ref_sink (_tmp0_);
+	_tmp1_ = (GtkImage*) gtk_image_new_from_stock (stock_id, GTK_ICON_SIZE_MENU);
+	image = g_object_ref_sink (_tmp1_);
 	gtk_container_add ((GtkContainer*) button, (GtkWidget*) image);
 	gtk_button_set_relief (button, GTK_RELIEF_NONE);
 	result = button;
@@ -503,15 +558,24 @@ static gpointer _g_object_ref0 (gpointer self) {
 }
 
 
-static void _lambda55_ (FileBrowser* self) {
+static void _lambda56_ (FileBrowser* self) {
 	GtkTreeIter iter = {0};
-	if (gtk_combo_box_get_active_iter (self->priv->combo_box, &iter)) {
+	GtkTreeIter _tmp0_ = {0};
+	gboolean _tmp1_;
+	_tmp1_ = gtk_combo_box_get_active_iter (self->priv->combo_box, &_tmp0_);
+	iter = _tmp0_;
+	if (_tmp1_) {
+		GtkTreeModel* _tmp2_ = NULL;
+		GtkTreeModel* _tmp3_;
 		GtkTreeModel* model;
-		GFile* file;
-		model = _g_object_ref0 (gtk_combo_box_get_model (self->priv->combo_box));
-		file = NULL;
+		GFile* file = NULL;
+		gboolean _tmp4_;
+		_tmp2_ = gtk_combo_box_get_model (self->priv->combo_box);
+		_tmp3_ = _g_object_ref0 (_tmp2_);
+		model = _tmp3_;
 		gtk_tree_model_get (model, &iter, FILE_BROWSER_PARENT_DIR_COLUMN_FILE, &file, -1, -1);
-		if (!g_file_equal (file, self->priv->current_directory)) {
+		_tmp4_ = g_file_equal (file, self->priv->current_directory);
+		if (!_tmp4_) {
 			file_browser_fill_stores_with_dir (self, file);
 		}
 		_g_object_unref0 (file);
@@ -520,33 +584,43 @@ static void _lambda55_ (FileBrowser* self) {
 }
 
 
-static void __lambda55__gtk_combo_box_changed (GtkComboBox* _sender, gpointer self) {
-	_lambda55_ (self);
+static void __lambda56__gtk_combo_box_changed (GtkComboBox* _sender, gpointer self) {
+	_lambda56_ (self);
 }
 
 
 static void file_browser_init_combo_box (FileBrowser* self) {
-	GtkListStore* _tmp0_;
-	GtkComboBox* _tmp1_;
+	GtkListStore* _tmp0_ = NULL;
+	GtkComboBox* _tmp1_ = NULL;
+	GtkCellRendererText* _tmp2_ = NULL;
 	GtkCellRendererText* text_renderer;
+	GtkCellRendererPixbuf* _tmp3_ = NULL;
 	GtkCellRendererPixbuf* pixbuf_renderer;
-	GtkCellRendererText* _tmp2_;
+	GtkCellRendererText* _tmp4_ = NULL;
 	g_return_if_fail (self != NULL);
-	self->priv->parent_dir_store = (_tmp0_ = gtk_list_store_new ((gint) FILE_BROWSER_PARENT_DIR_COLUMN_N_COLUMNS, G_TYPE_STRING, G_TYPE_STRING, G_TYPE_STRING, G_TYPE_FILE), _g_object_unref0 (self->priv->parent_dir_store), _tmp0_);
-	self->priv->combo_box = (_tmp1_ = g_object_ref_sink ((GtkComboBox*) gtk_combo_box_new_with_model ((GtkTreeModel*) self->priv->parent_dir_store)), _g_object_unref0 (self->priv->combo_box), _tmp1_);
-	gtk_box_pack_start ((GtkBox*) self, (GtkWidget*) self->priv->combo_box, FALSE, FALSE, 0);
-	text_renderer = g_object_ref_sink ((GtkCellRendererText*) gtk_cell_renderer_text_new ());
+	_tmp0_ = gtk_list_store_new ((gint) FILE_BROWSER_PARENT_DIR_COLUMN_N_COLUMNS, G_TYPE_STRING, G_TYPE_STRING, G_TYPE_STRING, G_TYPE_FILE);
+	_g_object_unref0 (self->priv->parent_dir_store);
+	self->priv->parent_dir_store = _tmp0_;
+	_tmp1_ = (GtkComboBox*) gtk_combo_box_new_with_model ((GtkTreeModel*) self->priv->parent_dir_store);
+	_g_object_unref0 (self->priv->combo_box);
+	self->priv->combo_box = g_object_ref_sink (_tmp1_);
+	gtk_box_pack_start ((GtkBox*) self, (GtkWidget*) self->priv->combo_box, FALSE, FALSE, (guint) 0);
+	_tmp2_ = (GtkCellRendererText*) gtk_cell_renderer_text_new ();
+	text_renderer = g_object_ref_sink (_tmp2_);
 	gtk_cell_layout_pack_start ((GtkCellLayout*) self->priv->combo_box, (GtkCellRenderer*) text_renderer, FALSE);
 	gtk_cell_layout_set_attributes ((GtkCellLayout*) self->priv->combo_box, (GtkCellRenderer*) text_renderer, "text", FILE_BROWSER_PARENT_DIR_COLUMN_INDENT, NULL, NULL);
-	pixbuf_renderer = g_object_ref_sink ((GtkCellRendererPixbuf*) gtk_cell_renderer_pixbuf_new ());
+	_tmp3_ = (GtkCellRendererPixbuf*) gtk_cell_renderer_pixbuf_new ();
+	pixbuf_renderer = g_object_ref_sink (_tmp3_);
 	gtk_cell_layout_pack_start ((GtkCellLayout*) self->priv->combo_box, (GtkCellRenderer*) pixbuf_renderer, FALSE);
 	gtk_cell_layout_set_attributes ((GtkCellLayout*) self->priv->combo_box, (GtkCellRenderer*) pixbuf_renderer, "stock-id", FILE_BROWSER_PARENT_DIR_COLUMN_PIXBUF, NULL, NULL);
-	text_renderer = (_tmp2_ = g_object_ref_sink ((GtkCellRendererText*) gtk_cell_renderer_text_new ()), _g_object_unref0 (text_renderer), _tmp2_);
+	_tmp4_ = (GtkCellRendererText*) gtk_cell_renderer_text_new ();
+	_g_object_unref0 (text_renderer);
+	text_renderer = g_object_ref_sink (_tmp4_);
 	gtk_cell_layout_pack_start ((GtkCellLayout*) self->priv->combo_box, (GtkCellRenderer*) text_renderer, TRUE);
 	gtk_cell_layout_set_attributes ((GtkCellLayout*) self->priv->combo_box, (GtkCellRenderer*) text_renderer, "text", FILE_BROWSER_PARENT_DIR_COLUMN_NAME, NULL, NULL);
 	g_object_set (text_renderer, "ellipsize-set", TRUE, NULL);
 	g_object_set (text_renderer, "ellipsize", PANGO_ELLIPSIZE_END, NULL);
-	g_signal_connect_object (self->priv->combo_box, "changed", (GCallback) __lambda55__gtk_combo_box_changed, self, 0);
+	g_signal_connect_object (self->priv->combo_box, "changed", (GCallback) __lambda56__gtk_combo_box_changed, self, 0);
 	_g_object_unref0 (pixbuf_renderer);
 	_g_object_unref0 (text_renderer);
 }
@@ -559,28 +633,37 @@ static gint _file_browser_on_sort_gtk_tree_iter_compare_func (GtkTreeModel* mode
 }
 
 
-static void _lambda56_ (GtkTreePath* path, FileBrowser* self) {
+static void _lambda57_ (GtkTreePath* path, FileBrowser* self) {
+	GtkTreeModel* _tmp0_;
 	GtkTreeModel* model;
 	GtkTreeIter iter = {0};
-	char* basename;
+	GtkTreeIter _tmp1_ = {0};
+	gboolean _tmp2_;
+	gchar* basename = NULL;
 	gboolean is_dir = FALSE;
+	GFile* _tmp3_ = NULL;
 	GFile* file;
+	AppSettings* _tmp4_ = NULL;
 	AppSettings* app_settings;
-	char* extension;
-	const char* _tmp13_;
-	GQuark _tmp14_;
-	static GQuark _tmp14__label0 = 0;
-	static GQuark _tmp14__label1 = 0;
-	static GQuark _tmp14__label2 = 0;
+	gchar* _tmp5_ = NULL;
+	gchar* extension;
+	const gchar* _tmp6_;
+	GQuark _tmp7_;
+	static GQuark _tmp7__label0 = 0;
+	static GQuark _tmp7__label1 = 0;
+	static GQuark _tmp7__label2 = 0;
 	g_return_if_fail (path != NULL);
-	model = _g_object_ref0 (GTK_TREE_MODEL (self->priv->list_store));
-	if (!gtk_tree_model_get_iter (model, &iter, path)) {
+	_tmp0_ = _g_object_ref0 (GTK_TREE_MODEL (self->priv->list_store));
+	model = _tmp0_;
+	_tmp2_ = gtk_tree_model_get_iter (model, &_tmp1_, path);
+	iter = _tmp1_;
+	if (!_tmp2_) {
 		_g_object_unref0 (model);
 		return;
 	}
-	basename = NULL;
 	gtk_tree_model_get (model, &iter, FILE_BROWSER_FILE_COLUMN_NAME, &basename, FILE_BROWSER_FILE_COLUMN_IS_DIR, &is_dir, -1, -1);
-	file = g_file_get_child (self->priv->current_directory, basename);
+	_tmp3_ = g_file_get_child (self->priv->current_directory, basename);
+	file = _tmp3_;
 	if (is_dir) {
 		file_browser_fill_stores_with_dir (self, file);
 		_g_object_unref0 (file);
@@ -588,57 +671,80 @@ static void _lambda56_ (GtkTreePath* path, FileBrowser* self) {
 		_g_object_unref0 (model);
 		return;
 	}
-	app_settings = app_settings_get_default ();
-	extension = utils_get_extension (basename);
-	_tmp13_ = extension;
-	_tmp14_ = (NULL == _tmp13_) ? 0 : g_quark_from_string (_tmp13_);
-	if (_tmp14_ == ((0 != _tmp14__label0) ? _tmp14__label0 : (_tmp14__label0 = g_quark_from_static_string (".dvi"))))
-	switch (0) {
-		default:
-		{
-			BuildTool _tmp0_ = {0};
-			GtkAction* _tmp1_;
-			BuildTool _tmp2_;
-			BuildToolRunner* _tmp3_;
-			_tmp3_ = build_tool_runner_new (file, (_tmp2_ = (app_settings_get_build_tool_view_dvi (app_settings, &_tmp0_), _tmp0_), &_tmp2_), self->priv->build_view, _tmp1_ = main_window_get_action_stop_exec (self->priv->main_window));
-			_g_object_unref0 (_tmp3_);
-			_g_object_unref0 (_tmp1_);
-			break;
+	_tmp4_ = app_settings_get_default ();
+	app_settings = _tmp4_;
+	_tmp5_ = utils_get_extension (basename);
+	extension = _tmp5_;
+	_tmp6_ = extension;
+	_tmp7_ = (NULL == _tmp6_) ? 0 : g_quark_from_string (_tmp6_);
+	if (_tmp7_ == ((0 != _tmp7__label0) ? _tmp7__label0 : (_tmp7__label0 = g_quark_from_static_string (".dvi")))) {
+		switch (0) {
+			default:
+			{
+				BuildTool _tmp8_ = {0};
+				GtkAction* _tmp9_ = NULL;
+				GtkAction* _tmp10_;
+				BuildToolRunner* _tmp11_ = NULL;
+				BuildToolRunner* _tmp12_;
+				app_settings_get_build_tool_view_dvi (app_settings, &_tmp8_);
+				_tmp9_ = main_window_get_action_stop_exec (self->priv->main_window);
+				_tmp10_ = _tmp9_;
+				_tmp11_ = build_tool_runner_new (file, &_tmp8_, self->priv->build_view, _tmp10_);
+				_tmp12_ = _tmp11_;
+				_g_object_unref0 (_tmp12_);
+				_g_object_unref0 (_tmp10_);
+				break;
+			}
 		}
-	} else if (_tmp14_ == ((0 != _tmp14__label1) ? _tmp14__label1 : (_tmp14__label1 = g_quark_from_static_string (".pdf"))))
-	switch (0) {
-		default:
-		{
-			BuildTool _tmp4_ = {0};
-			GtkAction* _tmp5_;
-			BuildTool _tmp6_;
-			BuildToolRunner* _tmp7_;
-			_tmp7_ = build_tool_runner_new (file, (_tmp6_ = (app_settings_get_build_tool_view_pdf (app_settings, &_tmp4_), _tmp4_), &_tmp6_), self->priv->build_view, _tmp5_ = main_window_get_action_stop_exec (self->priv->main_window));
-			_g_object_unref0 (_tmp7_);
-			_g_object_unref0 (_tmp5_);
-			break;
+	} else if (_tmp7_ == ((0 != _tmp7__label1) ? _tmp7__label1 : (_tmp7__label1 = g_quark_from_static_string (".pdf")))) {
+		switch (0) {
+			default:
+			{
+				BuildTool _tmp13_ = {0};
+				GtkAction* _tmp14_ = NULL;
+				GtkAction* _tmp15_;
+				BuildToolRunner* _tmp16_ = NULL;
+				BuildToolRunner* _tmp17_;
+				app_settings_get_build_tool_view_pdf (app_settings, &_tmp13_);
+				_tmp14_ = main_window_get_action_stop_exec (self->priv->main_window);
+				_tmp15_ = _tmp14_;
+				_tmp16_ = build_tool_runner_new (file, &_tmp13_, self->priv->build_view, _tmp15_);
+				_tmp17_ = _tmp16_;
+				_g_object_unref0 (_tmp17_);
+				_g_object_unref0 (_tmp15_);
+				break;
+			}
 		}
-	} else if (_tmp14_ == ((0 != _tmp14__label2) ? _tmp14__label2 : (_tmp14__label2 = g_quark_from_static_string (".ps"))))
-	switch (0) {
-		default:
-		{
-			BuildTool _tmp8_ = {0};
-			GtkAction* _tmp9_;
-			BuildTool _tmp10_;
-			BuildToolRunner* _tmp11_;
-			_tmp11_ = build_tool_runner_new (file, (_tmp10_ = (app_settings_get_build_tool_view_ps (app_settings, &_tmp8_), _tmp8_), &_tmp10_), self->priv->build_view, _tmp9_ = main_window_get_action_stop_exec (self->priv->main_window));
-			_g_object_unref0 (_tmp11_);
-			_g_object_unref0 (_tmp9_);
-			break;
+	} else if (_tmp7_ == ((0 != _tmp7__label2) ? _tmp7__label2 : (_tmp7__label2 = g_quark_from_static_string (".ps")))) {
+		switch (0) {
+			default:
+			{
+				BuildTool _tmp18_ = {0};
+				GtkAction* _tmp19_ = NULL;
+				GtkAction* _tmp20_;
+				BuildToolRunner* _tmp21_ = NULL;
+				BuildToolRunner* _tmp22_;
+				app_settings_get_build_tool_view_ps (app_settings, &_tmp18_);
+				_tmp19_ = main_window_get_action_stop_exec (self->priv->main_window);
+				_tmp20_ = _tmp19_;
+				_tmp21_ = build_tool_runner_new (file, &_tmp18_, self->priv->build_view, _tmp20_);
+				_tmp22_ = _tmp21_;
+				_g_object_unref0 (_tmp22_);
+				_g_object_unref0 (_tmp20_);
+				break;
+			}
 		}
-	} else
-	switch (0) {
-		default:
-		{
-			DocumentTab* _tmp12_;
-			_tmp12_ = main_window_open_document (self->priv->main_window, file);
-			_g_object_unref0 (_tmp12_);
-			break;
+	} else {
+		switch (0) {
+			default:
+			{
+				DocumentTab* _tmp23_ = NULL;
+				DocumentTab* _tmp24_;
+				_tmp23_ = main_window_open_document (self->priv->main_window, file);
+				_tmp24_ = _tmp23_;
+				_g_object_unref0 (_tmp24_);
+				break;
+			}
 		}
 	}
 	_g_free0 (extension);
@@ -649,35 +755,47 @@ static void _lambda56_ (GtkTreePath* path, FileBrowser* self) {
 }
 
 
-static void __lambda56__gtk_tree_view_row_activated (GtkTreeView* _sender, GtkTreePath* path, GtkTreeViewColumn* column, gpointer self) {
-	_lambda56_ (path, self);
+static void __lambda57__gtk_tree_view_row_activated (GtkTreeView* _sender, GtkTreePath* path, GtkTreeViewColumn* column, gpointer self) {
+	_lambda57_ (path, self);
 }
 
 
 static void file_browser_init_list (FileBrowser* self) {
-	GtkListStore* _tmp0_;
+	GtkListStore* _tmp0_ = NULL;
+	GtkTreeView* _tmp1_ = NULL;
 	GtkTreeView* tree_view;
+	GtkTreeViewColumn* _tmp2_ = NULL;
 	GtkTreeViewColumn* column;
+	GtkCellRendererPixbuf* _tmp3_ = NULL;
 	GtkCellRendererPixbuf* pixbuf_renderer;
+	GtkCellRendererText* _tmp4_ = NULL;
 	GtkCellRendererText* text_renderer;
+	GtkWidget* _tmp5_ = NULL;
 	GtkWidget* sw;
 	g_return_if_fail (self != NULL);
-	self->priv->list_store = (_tmp0_ = gtk_list_store_new ((gint) FILE_BROWSER_FILE_COLUMN_N_COLUMNS, G_TYPE_STRING, G_TYPE_STRING, G_TYPE_BOOLEAN), _g_object_unref0 (self->priv->list_store), _tmp0_);
+	_tmp0_ = gtk_list_store_new ((gint) FILE_BROWSER_FILE_COLUMN_N_COLUMNS, G_TYPE_STRING, G_TYPE_STRING, G_TYPE_BOOLEAN);
+	_g_object_unref0 (self->priv->list_store);
+	self->priv->list_store = _tmp0_;
 	gtk_tree_sortable_set_sort_func ((GtkTreeSortable*) self->priv->list_store, 0, _file_browser_on_sort_gtk_tree_iter_compare_func, g_object_ref (self), g_object_unref);
 	gtk_tree_sortable_set_sort_column_id ((GtkTreeSortable*) self->priv->list_store, 0, GTK_SORT_ASCENDING);
-	tree_view = g_object_ref_sink ((GtkTreeView*) gtk_tree_view_new_with_model ((GtkTreeModel*) self->priv->list_store));
+	_tmp1_ = (GtkTreeView*) gtk_tree_view_new_with_model ((GtkTreeModel*) self->priv->list_store);
+	tree_view = g_object_ref_sink (_tmp1_);
 	gtk_tree_view_set_headers_visible (tree_view, FALSE);
-	column = g_object_ref_sink (gtk_tree_view_column_new ());
+	_tmp2_ = gtk_tree_view_column_new ();
+	column = g_object_ref_sink (_tmp2_);
 	gtk_tree_view_append_column (tree_view, column);
-	pixbuf_renderer = g_object_ref_sink ((GtkCellRendererPixbuf*) gtk_cell_renderer_pixbuf_new ());
+	_tmp3_ = (GtkCellRendererPixbuf*) gtk_cell_renderer_pixbuf_new ();
+	pixbuf_renderer = g_object_ref_sink (_tmp3_);
 	gtk_cell_layout_pack_start ((GtkCellLayout*) column, (GtkCellRenderer*) pixbuf_renderer, FALSE);
 	gtk_tree_view_column_set_attributes (column, (GtkCellRenderer*) pixbuf_renderer, "stock-id", FILE_BROWSER_FILE_COLUMN_PIXBUF, NULL, NULL);
-	text_renderer = g_object_ref_sink ((GtkCellRendererText*) gtk_cell_renderer_text_new ());
+	_tmp4_ = (GtkCellRendererText*) gtk_cell_renderer_text_new ();
+	text_renderer = g_object_ref_sink (_tmp4_);
 	gtk_cell_layout_pack_start ((GtkCellLayout*) column, (GtkCellRenderer*) text_renderer, TRUE);
 	gtk_tree_view_column_set_attributes (column, (GtkCellRenderer*) text_renderer, "text", FILE_BROWSER_FILE_COLUMN_NAME, NULL, NULL);
-	sw = utils_add_scrollbar ((GtkWidget*) tree_view);
-	gtk_box_pack_start ((GtkBox*) self, sw, TRUE, TRUE, 0);
-	g_signal_connect_object (tree_view, "row-activated", (GCallback) __lambda56__gtk_tree_view_row_activated, self, 0);
+	_tmp5_ = utils_add_scrollbar ((GtkWidget*) tree_view);
+	sw = _tmp5_;
+	gtk_box_pack_start ((GtkBox*) self, sw, TRUE, TRUE, (guint) 0);
+	g_signal_connect_object (tree_view, "row-activated", (GCallback) __lambda57__gtk_tree_view_row_activated, self, 0);
 	_g_object_unref0 (sw);
 	_g_object_unref0 (text_renderer);
 	_g_object_unref0 (pixbuf_renderer);
@@ -693,26 +811,28 @@ void file_browser_refresh (FileBrowser* self) {
 
 
 void file_browser_refresh_if_in_dir (FileBrowser* self, GFile* dir) {
+	gboolean _tmp0_;
 	g_return_if_fail (self != NULL);
 	g_return_if_fail (dir != NULL);
-	if (g_file_equal (dir, self->priv->current_directory)) {
+	_tmp0_ = g_file_equal (dir, self->priv->current_directory);
+	if (_tmp0_) {
 		file_browser_refresh (self);
 	}
 }
 
 
-static glong string_get_length (const char* self) {
-	glong result;
-	g_return_val_if_fail (self != NULL, 0L);
-	result = g_utf8_strlen (self, (gssize) (-1));
+static gchar string_get (const gchar* self, glong index) {
+	gchar result = '\0';
+	g_return_val_if_fail (self != NULL, '\0');
+	result = ((gchar*) self)[index];
 	return result;
 }
 
 
-static gboolean _vala_string_array_contains (char** stack, int stack_length, char* needle) {
+static gboolean _vala_string_array_contains (gchar** stack, int stack_length, gchar* needle) {
 	int i;
 	for (i = 0; i < stack_length; i++) {
-		if (_vala_strcmp0 (stack[i], needle) == 0) {
+		if (g_strcmp0 (stack[i], needle) == 0) {
 			return TRUE;
 		}
 	}
@@ -720,254 +840,325 @@ static gboolean _vala_string_array_contains (char** stack, int stack_length, cha
 }
 
 
-static void _g_list_free_g_object_unref (GList* self) {
-	g_list_foreach (self, (GFunc) g_object_unref, NULL);
+static void _g_object_unref0_ (gpointer var) {
+	(var == NULL) ? NULL : (var = (g_object_unref (var), NULL));
+}
+
+
+static void _g_list_free__g_object_unref0_ (GList* self) {
+	g_list_foreach (self, (GFunc) _g_object_unref0_, NULL);
 	g_list_free (self);
 }
 
 
 static void file_browser_fill_stores_with_dir (FileBrowser* self, GFile* dir) {
+	GFile* _tmp0_;
 	GFile* directory;
+	GFileEnumerator* _tmp11_ = NULL;
+	GFileEnumerator* enumerator;
+	gboolean _tmp12_;
+	gboolean show_all;
+	gboolean _tmp13_;
+	gboolean show_all_except;
+	gboolean _tmp14_ = FALSE;
+	gboolean show_hidden;
+	gchar* _tmp16_ = NULL;
+	gchar* exts;
+	gchar** _tmp17_;
+	gchar** _tmp18_ = NULL;
+	gchar** extensions;
+	gint extensions_length1;
+	gint _extensions_size_;
+	gchar* _tmp19_ = NULL;
+	gchar** _tmp20_;
+	gchar** _tmp21_ = NULL;
+	gchar** clean_extensions;
+	gint clean_extensions_length1;
+	gint _clean_extensions_size_;
 	GList* parent_dirs;
+	GFile* _tmp45_;
+	GFile* _tmp46_;
 	GFile* current_dir;
-	GtkTreeIter _tmp27_ = {0};
+	GtkTreeIter _tmp50_ = {0};
 	GtkTreeIter iter;
 	gint i;
-	GFile* _tmp35_;
-	char* _tmp36_;
-	GFile* _tmp37_;
+	GFile* _tmp64_;
+	gchar* _tmp65_ = NULL;
+	gchar* _tmp66_;
+	GFile* _tmp67_ = NULL;
+	GFile* _tmp68_;
 	GError * _inner_error_ = NULL;
 	g_return_if_fail (self != NULL);
 	gtk_list_store_clear (self->priv->list_store);
 	gtk_list_store_clear (self->priv->parent_dir_store);
-	directory = _g_object_ref0 (dir);
+	_tmp0_ = _g_object_ref0 (dir);
+	directory = _tmp0_;
 	if (directory == NULL) {
-		char* uri;
-		gboolean _tmp0_ = FALSE;
+		gchar* _tmp1_ = NULL;
+		gchar* uri;
 		gboolean _tmp2_ = FALSE;
-		gboolean _tmp3_ = FALSE;
-		uri = g_settings_get_string (self->priv->settings, "current-directory");
+		gboolean _tmp5_ = FALSE;
+		gboolean _tmp6_ = FALSE;
+		_tmp1_ = g_settings_get_string (self->priv->settings, "current-directory");
+		uri = _tmp1_;
 		if (uri != NULL) {
-			_tmp0_ = string_get_length (uri) > 0;
+			gint _tmp3_;
+			_tmp3_ = strlen (uri);
+			_tmp2_ = _tmp3_ > 0;
 		} else {
-			_tmp0_ = FALSE;
+			_tmp2_ = FALSE;
 		}
-		if (_tmp0_) {
-			GFile* _tmp1_;
-			directory = (_tmp1_ = g_file_new_for_uri (uri), _g_object_unref0 (directory), _tmp1_);
+		if (_tmp2_) {
+			GFile* _tmp4_ = NULL;
+			_tmp4_ = g_file_new_for_uri (uri);
+			_g_object_unref0 (directory);
+			directory = _tmp4_;
 		}
 		if (uri == NULL) {
-			_tmp3_ = TRUE;
+			_tmp6_ = TRUE;
 		} else {
-			_tmp3_ = string_get_length (uri) == 0;
+			gint _tmp7_;
+			_tmp7_ = strlen (uri);
+			_tmp6_ = _tmp7_ == 0;
 		}
-		if (_tmp3_) {
-			_tmp2_ = TRUE;
+		if (_tmp6_) {
+			_tmp5_ = TRUE;
 		} else {
-			_tmp2_ = !g_file_query_exists (directory, NULL);
+			gboolean _tmp8_;
+			_tmp8_ = g_file_query_exists (directory, NULL);
+			_tmp5_ = !_tmp8_;
 		}
-		if (_tmp2_) {
-			GFile* _tmp4_;
-			directory = (_tmp4_ = g_file_new_for_path (g_get_home_dir ()), _g_object_unref0 (directory), _tmp4_);
+		if (_tmp5_) {
+			const gchar* _tmp9_ = NULL;
+			GFile* _tmp10_ = NULL;
+			_tmp9_ = g_get_home_dir ();
+			_tmp10_ = g_file_new_for_path (_tmp9_);
+			_g_object_unref0 (directory);
+			directory = _tmp10_;
 		}
 		_g_free0 (uri);
 	}
+	_tmp11_ = g_file_enumerate_children (directory, "standard::type,standard::display-name", G_FILE_QUERY_INFO_NONE, NULL, &_inner_error_);
+	enumerator = _tmp11_;
+	if (_inner_error_ != NULL) {
+		goto __catch28_g_error;
+	}
+	_tmp12_ = g_settings_get_boolean (self->priv->settings, "show-all-files");
+	show_all = _tmp12_;
+	_tmp13_ = g_settings_get_boolean (self->priv->settings, "show-all-files-except");
+	show_all_except = _tmp13_;
+	if (show_all) {
+		gboolean _tmp15_;
+		_tmp15_ = g_settings_get_boolean (self->priv->settings, "show-hidden-files");
+		_tmp14_ = _tmp15_;
+	} else {
+		_tmp14_ = FALSE;
+	}
+	show_hidden = _tmp14_;
+	_tmp16_ = g_settings_get_string (self->priv->settings, "file-extensions");
+	exts = _tmp16_;
+	_tmp18_ = _tmp17_ = g_strsplit (exts, " ", 0);
+	extensions = _tmp18_;
+	extensions_length1 = _vala_array_length (_tmp17_);
+	_extensions_size_ = _vala_array_length (_tmp17_);
+	_tmp19_ = g_settings_get_string (self->priv->latex_settings, "clean-extensions");
+	_g_free0 (exts);
+	exts = _tmp19_;
+	_tmp21_ = _tmp20_ = g_strsplit (exts, " ", 0);
+	clean_extensions = _tmp21_;
+	clean_extensions_length1 = _vala_array_length (_tmp20_);
+	_clean_extensions_size_ = _vala_array_length (_tmp20_);
 	{
-		GFileEnumerator* enumerator;
-		gboolean show_all;
-		gboolean show_all_except;
-		gboolean _tmp5_ = FALSE;
-		gboolean show_hidden;
-		char* exts;
-		gint extensions_length1;
-		gint _extensions_size_;
-		char** _tmp7_;
-		char** _tmp6_;
-		char** extensions;
-		char* _tmp8_;
-		gint clean_extensions_length1;
-		gint _clean_extensions_size_;
-		char** _tmp10_;
-		char** _tmp9_;
-		char** clean_extensions;
-		enumerator = g_file_enumerate_children (directory, "standard::type,standard::display-name", G_FILE_QUERY_INFO_NONE, NULL, &_inner_error_);
+		GFileInfo* _tmp22_ = NULL;
+		GFileInfo* info;
+		_tmp22_ = g_file_enumerator_next_file (enumerator, NULL, &_inner_error_);
+		info = _tmp22_;
 		if (_inner_error_ != NULL) {
+			clean_extensions = (_vala_array_free (clean_extensions, clean_extensions_length1, (GDestroyNotify) g_free), NULL);
+			extensions = (_vala_array_free (extensions, extensions_length1, (GDestroyNotify) g_free), NULL);
+			_g_free0 (exts);
+			_g_object_unref0 (enumerator);
 			goto __catch28_g_error;
 		}
-		show_all = g_settings_get_boolean (self->priv->settings, "show-all-files");
-		show_all_except = g_settings_get_boolean (self->priv->settings, "show-all-files-except");
-		if (show_all) {
-			_tmp5_ = g_settings_get_boolean (self->priv->settings, "show-hidden-files");
-		} else {
-			_tmp5_ = FALSE;
-		}
-		show_hidden = _tmp5_;
-		exts = g_settings_get_string (self->priv->settings, "file-extensions");
-		extensions = (_tmp7_ = _tmp6_ = g_strsplit (exts, " ", 0), extensions_length1 = _vala_array_length (_tmp6_), _extensions_size_ = extensions_length1, _tmp7_);
-		exts = (_tmp8_ = g_settings_get_string (self->priv->latex_settings, "clean-extensions"), _g_free0 (exts), _tmp8_);
-		clean_extensions = (_tmp10_ = _tmp9_ = g_strsplit (exts, " ", 0), clean_extensions_length1 = _vala_array_length (_tmp9_), _clean_extensions_size_ = clean_extensions_length1, _tmp10_);
 		{
-			GFileInfo* info;
-			info = g_file_enumerator_next_file (enumerator, NULL, &_inner_error_);
-			if (_inner_error_ != NULL) {
-				clean_extensions = (_vala_array_free (clean_extensions, clean_extensions_length1, (GDestroyNotify) g_free), NULL);
-				extensions = (_vala_array_free (extensions, extensions_length1, (GDestroyNotify) g_free), NULL);
-				_g_free0 (exts);
-				_g_object_unref0 (enumerator);
-				goto __catch28_g_error;
-			}
-			{
-				gboolean _tmp11_;
-				_tmp11_ = TRUE;
-				while (TRUE) {
-					char* basename;
-					gboolean _tmp14_ = FALSE;
-					GFileType type;
-					char* extension;
-					gboolean _tmp15_ = FALSE;
-					gboolean _tmp16_ = FALSE;
-					gboolean _tmp17_ = FALSE;
-					if (!_tmp11_) {
-						GFileInfo* _tmp12_;
-						GFileInfo* _tmp13_;
-						_tmp12_ = g_file_enumerator_next_file (enumerator, NULL, &_inner_error_);
-						if (_inner_error_ != NULL) {
-							_g_object_unref0 (info);
-							clean_extensions = (_vala_array_free (clean_extensions, clean_extensions_length1, (GDestroyNotify) g_free), NULL);
-							extensions = (_vala_array_free (extensions, extensions_length1, (GDestroyNotify) g_free), NULL);
-							_g_free0 (exts);
-							_g_object_unref0 (enumerator);
-							goto __catch28_g_error;
-						}
-						info = (_tmp13_ = _tmp12_, _g_object_unref0 (info), _tmp13_);
-					}
-					_tmp11_ = FALSE;
-					if (!(info != NULL)) {
-						break;
-					}
-					basename = g_strdup (g_file_info_get_display_name (info));
-					if (g_utf8_get_char (g_utf8_offset_to_pointer (basename, 0)) == '.') {
-						_tmp14_ = !show_hidden;
-					} else {
-						_tmp14_ = FALSE;
+			gboolean _tmp23_;
+			_tmp23_ = TRUE;
+			while (TRUE) {
+				const gchar* _tmp26_ = NULL;
+				gchar* _tmp27_;
+				gchar* basename;
+				gboolean _tmp28_ = FALSE;
+				gchar _tmp29_;
+				GFileType _tmp30_;
+				GFileType type;
+				gchar* _tmp31_ = NULL;
+				gchar* extension;
+				gboolean _tmp32_ = FALSE;
+				gboolean _tmp33_ = FALSE;
+				gboolean _tmp34_ = FALSE;
+				if (!_tmp23_) {
+					GFileInfo* _tmp24_ = NULL;
+					GFileInfo* _tmp25_;
+					_tmp24_ = g_file_enumerator_next_file (enumerator, NULL, &_inner_error_);
+					_tmp25_ = _tmp24_;
+					if (_inner_error_ != NULL) {
+						_g_object_unref0 (info);
+						clean_extensions = (_vala_array_free (clean_extensions, clean_extensions_length1, (GDestroyNotify) g_free), NULL);
+						extensions = (_vala_array_free (extensions, extensions_length1, (GDestroyNotify) g_free), NULL);
+						_g_free0 (exts);
+						_g_object_unref0 (enumerator);
+						goto __catch28_g_error;
 					}
-					if (_tmp14_) {
-						_g_free0 (basename);
-						continue;
-					}
-					type = g_file_info_get_file_type (info);
-					if (type == G_FILE_TYPE_DIRECTORY) {
-						file_browser_insert_file (self, TRUE, GTK_STOCK_DIRECTORY, basename);
-						_g_free0 (basename);
-						continue;
-					}
-					extension = utils_get_extension (basename);
+					_g_object_unref0 (info);
+					info = _tmp25_;
+				}
+				_tmp23_ = FALSE;
+				if (!(info != NULL)) {
+					break;
+				}
+				_tmp26_ = g_file_info_get_display_name (info);
+				_tmp27_ = g_strdup (_tmp26_);
+				basename = _tmp27_;
+				_tmp29_ = string_get (basename, (glong) 0);
+				if (_tmp29_ == '.') {
+					_tmp28_ = !show_hidden;
+				} else {
+					_tmp28_ = FALSE;
+				}
+				if (_tmp28_) {
+					_g_free0 (basename);
+					continue;
+				}
+				_tmp30_ = g_file_info_get_file_type (info);
+				type = _tmp30_;
+				if (type == G_FILE_TYPE_DIRECTORY) {
+					file_browser_insert_file (self, TRUE, GTK_STOCK_DIRECTORY, basename);
+					_g_free0 (basename);
+					continue;
+				}
+				_tmp31_ = utils_get_extension (basename);
+				extension = _tmp31_;
+				if (show_all) {
+					_tmp34_ = !show_all_except;
+				} else {
+					_tmp34_ = FALSE;
+				}
+				if (_tmp34_) {
+					_tmp33_ = TRUE;
+				} else {
+					gboolean _tmp35_ = FALSE;
 					if (show_all) {
-						_tmp17_ = !show_all_except;
-					} else {
-						_tmp17_ = FALSE;
-					}
-					if (_tmp17_) {
-						_tmp16_ = TRUE;
-					} else {
-						gboolean _tmp18_ = FALSE;
-						if (show_all) {
-							_tmp18_ = !_vala_string_array_contains (clean_extensions, clean_extensions_length1, extension);
-						} else {
-							_tmp18_ = FALSE;
-						}
-						_tmp16_ = _tmp18_;
-					}
-					if (_tmp16_) {
-						_tmp15_ = TRUE;
+						_tmp35_ = !_vala_string_array_contains (clean_extensions, clean_extensions_length1, extension);
 					} else {
-						_tmp15_ = _vala_string_array_contains (extensions, extensions_length1, extension);
+						_tmp35_ = FALSE;
 					}
-					if (_tmp15_) {
-						char* pixbuf;
-						const char* _tmp24_;
-						GQuark _tmp25_;
-						static GQuark _tmp25__label0 = 0;
-						static GQuark _tmp25__label1 = 0;
-						static GQuark _tmp25__label2 = 0;
-						static GQuark _tmp25__label3 = 0;
-						pixbuf = NULL;
-						_tmp24_ = extension;
-						_tmp25_ = (NULL == _tmp24_) ? 0 : g_quark_from_string (_tmp24_);
-						if (_tmp25_ == ((0 != _tmp25__label0) ? _tmp25__label0 : (_tmp25__label0 = g_quark_from_static_string (".tex"))))
+					_tmp33_ = _tmp35_;
+				}
+				if (_tmp33_) {
+					_tmp32_ = TRUE;
+				} else {
+					_tmp32_ = _vala_string_array_contains (extensions, extensions_length1, extension);
+				}
+				if (_tmp32_) {
+					gchar* pixbuf = NULL;
+					const gchar* _tmp36_;
+					GQuark _tmp37_;
+					static GQuark _tmp37__label0 = 0;
+					static GQuark _tmp37__label1 = 0;
+					static GQuark _tmp37__label2 = 0;
+					static GQuark _tmp37__label3 = 0;
+					_tmp36_ = extension;
+					_tmp37_ = (NULL == _tmp36_) ? 0 : g_quark_from_string (_tmp36_);
+					if (_tmp37_ == ((0 != _tmp37__label0) ? _tmp37__label0 : (_tmp37__label0 = g_quark_from_static_string (".tex")))) {
 						switch (0) {
 							default:
 							{
-								char* _tmp19_;
-								pixbuf = (_tmp19_ = g_strdup (GTK_STOCK_EDIT), _g_free0 (pixbuf), _tmp19_);
+								gchar* _tmp38_;
+								_tmp38_ = g_strdup (GTK_STOCK_EDIT);
+								_g_free0 (pixbuf);
+								pixbuf = _tmp38_;
 								break;
 							}
-						} else if (_tmp25_ == ((0 != _tmp25__label1) ? _tmp25__label1 : (_tmp25__label1 = g_quark_from_static_string (".pdf"))))
+						}
+					} else if (_tmp37_ == ((0 != _tmp37__label1) ? _tmp37__label1 : (_tmp37__label1 = g_quark_from_static_string (".pdf")))) {
 						switch (0) {
 							default:
 							{
-								char* _tmp20_;
-								pixbuf = (_tmp20_ = g_strdup ("view_pdf"), _g_free0 (pixbuf), _tmp20_);
+								gchar* _tmp39_;
+								_tmp39_ = g_strdup ("view_pdf");
+								_g_free0 (pixbuf);
+								pixbuf = _tmp39_;
 								break;
 							}
-						} else if (_tmp25_ == ((0 != _tmp25__label2) ? _tmp25__label2 : (_tmp25__label2 = g_quark_from_static_string (".dvi"))))
+						}
+					} else if (_tmp37_ == ((0 != _tmp37__label2) ? _tmp37__label2 : (_tmp37__label2 = g_quark_from_static_string (".dvi")))) {
 						switch (0) {
 							default:
 							{
-								char* _tmp21_;
-								pixbuf = (_tmp21_ = g_strdup ("view_dvi"), _g_free0 (pixbuf), _tmp21_);
+								gchar* _tmp40_;
+								_tmp40_ = g_strdup ("view_dvi");
+								_g_free0 (pixbuf);
+								pixbuf = _tmp40_;
 								break;
 							}
-						} else if (_tmp25_ == ((0 != _tmp25__label3) ? _tmp25__label3 : (_tmp25__label3 = g_quark_from_static_string (".ps"))))
+						}
+					} else if (_tmp37_ == ((0 != _tmp37__label3) ? _tmp37__label3 : (_tmp37__label3 = g_quark_from_static_string (".ps")))) {
 						switch (0) {
 							default:
 							{
-								char* _tmp22_;
-								pixbuf = (_tmp22_ = g_strdup ("view_ps"), _g_free0 (pixbuf), _tmp22_);
+								gchar* _tmp41_;
+								_tmp41_ = g_strdup ("view_ps");
+								_g_free0 (pixbuf);
+								pixbuf = _tmp41_;
 								break;
 							}
-						} else
+						}
+					} else {
 						switch (0) {
 							default:
 							{
-								char* _tmp23_;
-								pixbuf = (_tmp23_ = g_strdup (GTK_STOCK_FILE), _g_free0 (pixbuf), _tmp23_);
+								gchar* _tmp42_;
+								_tmp42_ = g_strdup (GTK_STOCK_FILE);
+								_g_free0 (pixbuf);
+								pixbuf = _tmp42_;
 								break;
 							}
 						}
-						file_browser_insert_file (self, FALSE, pixbuf, basename);
-						_g_free0 (pixbuf);
 					}
-					_g_free0 (extension);
-					_g_free0 (basename);
+					file_browser_insert_file (self, FALSE, pixbuf, basename);
+					_g_free0 (pixbuf);
 				}
+				_g_free0 (extension);
+				_g_free0 (basename);
 			}
-			_g_object_unref0 (info);
 		}
-		gtk_tree_sortable_sort_column_changed ((GtkTreeSortable*) self->priv->list_store);
-		clean_extensions = (_vala_array_free (clean_extensions, clean_extensions_length1, (GDestroyNotify) g_free), NULL);
-		extensions = (_vala_array_free (extensions, extensions_length1, (GDestroyNotify) g_free), NULL);
-		_g_free0 (exts);
-		_g_object_unref0 (enumerator);
+		_g_object_unref0 (info);
 	}
+	gtk_tree_sortable_sort_column_changed ((GtkTreeSortable*) self->priv->list_store);
+	clean_extensions = (_vala_array_free (clean_extensions, clean_extensions_length1, (GDestroyNotify) g_free), NULL);
+	extensions = (_vala_array_free (extensions, extensions_length1, (GDestroyNotify) g_free), NULL);
+	_g_free0 (exts);
+	_g_object_unref0 (enumerator);
 	goto __finally28;
 	__catch28_g_error:
 	{
 		GError * e;
+		const gchar* _tmp43_ = NULL;
+		GtkMessageDialog* _tmp44_ = NULL;
+		GtkMessageDialog* dialog;
 		e = _inner_error_;
 		_inner_error_ = NULL;
-		{
-			GtkMessageDialog* dialog;
-			fprintf (stderr, "Error: %s\n", e->message);
-			dialog = g_object_ref_sink ((GtkMessageDialog*) gtk_message_dialog_new ((GtkWindow*) self->priv->main_window, GTK_DIALOG_DESTROY_WITH_PARENT, GTK_MESSAGE_WARNING, GTK_BUTTONS_CLOSE, _ ("File Browser")));
-			gtk_message_dialog_format_secondary_text (dialog, "%s", e->message, NULL);
-			gtk_dialog_run ((GtkDialog*) dialog);
-			gtk_object_destroy ((GtkObject*) dialog);
-			_g_object_unref0 (dialog);
-			_g_error_free0 (e);
-			_g_object_unref0 (directory);
-			return;
-		}
+		fprintf (stderr, "Error: %s\n", e->message);
+		_tmp43_ = _ ("File Browser");
+		_tmp44_ = (GtkMessageDialog*) gtk_message_dialog_new ((GtkWindow*) self->priv->main_window, GTK_DIALOG_DESTROY_WITH_PARENT, GTK_MESSAGE_WARNING, GTK_BUTTONS_CLOSE, _tmp43_);
+		dialog = g_object_ref_sink (_tmp44_);
+		gtk_message_dialog_format_secondary_text (dialog, "%s", e->message, NULL);
+		gtk_dialog_run ((GtkDialog*) dialog);
+		gtk_object_destroy ((GtkObject*) dialog);
+		_g_object_unref0 (dialog);
+		_g_error_free0 (e);
+		_g_object_unref0 (directory);
+		return;
 	}
 	__finally28:
 	if (_inner_error_ != NULL) {
@@ -977,58 +1168,89 @@ static void file_browser_fill_stores_with_dir (FileBrowser* self, GFile* dir) {
 		return;
 	}
 	parent_dirs = NULL;
-	parent_dirs = g_list_prepend (parent_dirs, _g_object_ref0 (directory));
-	current_dir = _g_object_ref0 (directory);
+	_tmp45_ = _g_object_ref0 (directory);
+	parent_dirs = g_list_prepend (parent_dirs, _tmp45_);
+	_tmp46_ = _g_object_ref0 (directory);
+	current_dir = _tmp46_;
 	while (TRUE) {
+		GFile* _tmp47_ = NULL;
 		GFile* parent;
-		GFile* _tmp26_;
-		parent = g_file_get_parent (current_dir);
+		GFile* _tmp48_;
+		GFile* _tmp49_;
+		_tmp47_ = g_file_get_parent (current_dir);
+		parent = _tmp47_;
 		if (parent == NULL) {
 			_g_object_unref0 (parent);
 			break;
 		}
-		parent_dirs = g_list_prepend (parent_dirs, _g_object_ref0 (parent));
-		current_dir = (_tmp26_ = _g_object_ref0 (parent), _g_object_unref0 (current_dir), _tmp26_);
+		_tmp48_ = _g_object_ref0 (parent);
+		parent_dirs = g_list_prepend (parent_dirs, _tmp48_);
+		_tmp49_ = _g_object_ref0 (parent);
+		_g_object_unref0 (current_dir);
+		current_dir = _tmp49_;
 		_g_object_unref0 (parent);
 	}
-	iter = (_tmp27_);
+	iter = _tmp50_;
 	i = 0;
 	{
 		GList* current_collection;
 		GList* current_it;
 		current_collection = parent_dirs;
 		for (current_it = current_collection; current_it != NULL; current_it = current_it->next) {
+			GFile* _tmp51_;
 			GFile* current;
-			current = _g_object_ref0 ((GFile*) current_it->data);
+			_tmp51_ = _g_object_ref0 ((GFile*) current_it->data);
+			current = _tmp51_;
 			{
-				char* basename;
-				char* indent;
-				char* pixbuf;
-				basename = NULL;
+				gchar* basename = NULL;
+				gchar* _tmp55_ = NULL;
+				gchar* indent;
+				gchar* pixbuf = NULL;
+				GtkTreeIter _tmp63_ = {0};
 				if (i == 0) {
-					char* _tmp28_;
-					basename = (_tmp28_ = g_strdup (_ ("File System")), _g_free0 (basename), _tmp28_);
+					const gchar* _tmp52_ = NULL;
+					gchar* _tmp53_;
+					_tmp52_ = _ ("File System");
+					_tmp53_ = g_strdup (_tmp52_);
+					_g_free0 (basename);
+					basename = _tmp53_;
 				} else {
-					char* _tmp29_;
-					basename = (_tmp29_ = g_file_get_basename (current), _g_free0 (basename), _tmp29_);
+					gchar* _tmp54_ = NULL;
+					_tmp54_ = g_file_get_basename (current);
+					_g_free0 (basename);
+					basename = _tmp54_;
 				}
-				indent = g_strnfill ((gsize) (i * 2), ' ');
-				pixbuf = NULL;
+				_tmp55_ = g_strnfill ((gsize) (i * 2), ' ');
+				indent = _tmp55_;
 				if (i == 0) {
-					char* _tmp30_;
-					pixbuf = (_tmp30_ = g_strdup (GTK_STOCK_HARDDISK), _g_free0 (pixbuf), _tmp30_);
+					gchar* _tmp56_;
+					_tmp56_ = g_strdup (GTK_STOCK_HARDDISK);
+					_g_free0 (pixbuf);
+					pixbuf = _tmp56_;
 				} else {
-					char* _tmp31_;
-					gboolean _tmp32_;
-					if ((_tmp32_ = _vala_strcmp0 (g_get_home_dir (), _tmp31_ = g_file_get_path (current)) == 0, _g_free0 (_tmp31_), _tmp32_)) {
-						char* _tmp33_;
-						pixbuf = (_tmp33_ = g_strdup (GTK_STOCK_HOME), _g_free0 (pixbuf), _tmp33_);
+					const gchar* _tmp57_ = NULL;
+					gchar* _tmp58_ = NULL;
+					gchar* _tmp59_;
+					gboolean _tmp60_;
+					_tmp57_ = g_get_home_dir ();
+					_tmp58_ = g_file_get_path (current);
+					_tmp59_ = _tmp58_;
+					_tmp60_ = g_strcmp0 (_tmp57_, _tmp59_) == 0;
+					_g_free0 (_tmp59_);
+					if (_tmp60_) {
+						gchar* _tmp61_;
+						_tmp61_ = g_strdup (GTK_STOCK_HOME);
+						_g_free0 (pixbuf);
+						pixbuf = _tmp61_;
 					} else {
-						char* _tmp34_;
-						pixbuf = (_tmp34_ = g_strdup (GTK_STOCK_DIRECTORY), _g_free0 (pixbuf), _tmp34_);
+						gchar* _tmp62_;
+						_tmp62_ = g_strdup (GTK_STOCK_DIRECTORY);
+						_g_free0 (pixbuf);
+						pixbuf = _tmp62_;
 					}
 				}
-				gtk_list_store_append (self->priv->parent_dir_store, &iter);
+				gtk_list_store_append (self->priv->parent_dir_store, &_tmp63_);
+				iter = _tmp63_;
 				gtk_list_store_set (self->priv->parent_dir_store, &iter, FILE_BROWSER_PARENT_DIR_COLUMN_FILE, current, FILE_BROWSER_PARENT_DIR_COLUMN_INDENT, indent, FILE_BROWSER_PARENT_DIR_COLUMN_NAME, basename, FILE_BROWSER_PARENT_DIR_COLUMN_PIXBUF, pixbuf, -1, -1);
 				i++;
 				_g_free0 (pixbuf);
@@ -1038,24 +1260,32 @@ static void file_browser_fill_stores_with_dir (FileBrowser* self, GFile* dir) {
 			}
 		}
 	}
-	self->priv->current_directory = (_tmp35_ = _g_object_ref0 (directory), _g_object_unref0 (self->priv->current_directory), _tmp35_);
-	g_settings_set_string (self->priv->settings, "current-directory", _tmp36_ = g_file_get_uri (directory));
-	_g_free0 (_tmp36_);
+	_tmp64_ = _g_object_ref0 (directory);
+	_g_object_unref0 (self->priv->current_directory);
+	self->priv->current_directory = _tmp64_;
+	_tmp65_ = g_file_get_uri (directory);
+	_tmp66_ = _tmp65_;
+	g_settings_set_string (self->priv->settings, "current-directory", _tmp66_);
+	_g_free0 (_tmp66_);
 	gtk_combo_box_set_active_iter (self->priv->combo_box, &iter);
-	gtk_widget_set_sensitive ((GtkWidget*) self->priv->parent_button, (_tmp37_ = g_file_get_parent (directory)) != NULL);
-	_g_object_unref0 (_tmp37_);
+	_tmp67_ = g_file_get_parent (directory);
+	_tmp68_ = _tmp67_;
+	gtk_widget_set_sensitive ((GtkWidget*) self->priv->parent_button, _tmp68_ != NULL);
+	_g_object_unref0 (_tmp68_);
 	_g_object_unref0 (current_dir);
-	__g_list_free_g_object_unref0 (parent_dirs);
+	__g_list_free__g_object_unref0_0 (parent_dirs);
 	_g_object_unref0 (directory);
 }
 
 
-static void file_browser_insert_file (FileBrowser* self, gboolean is_dir, const char* pixbuf, const char* basename) {
+static void file_browser_insert_file (FileBrowser* self, gboolean is_dir, const gchar* pixbuf, const gchar* basename) {
 	GtkTreeIter iter = {0};
+	GtkTreeIter _tmp0_ = {0};
 	g_return_if_fail (self != NULL);
 	g_return_if_fail (pixbuf != NULL);
 	g_return_if_fail (basename != NULL);
-	gtk_list_store_append (self->priv->list_store, &iter);
+	gtk_list_store_append (self->priv->list_store, &_tmp0_);
+	iter = _tmp0_;
 	gtk_list_store_set (self->priv->list_store, &iter, FILE_BROWSER_FILE_COLUMN_IS_DIR, is_dir, FILE_BROWSER_FILE_COLUMN_PIXBUF, pixbuf, FILE_BROWSER_FILE_COLUMN_NAME, basename, -1, -1);
 }
 
@@ -1064,29 +1294,29 @@ static gint file_browser_on_sort (FileBrowser* self, GtkTreeModel* model, GtkTre
 	gint result = 0;
 	gboolean a_is_dir = FALSE;
 	gboolean b_is_dir = FALSE;
-	gint _tmp0_ = 0;
+	gint _tmp1_ = 0;
 	g_return_val_if_fail (self != NULL, 0);
 	g_return_val_if_fail (model != NULL, 0);
 	gtk_tree_model_get (model, a, FILE_BROWSER_FILE_COLUMN_IS_DIR, &a_is_dir, -1, -1);
 	gtk_tree_model_get (model, b, FILE_BROWSER_FILE_COLUMN_IS_DIR, &b_is_dir, -1, -1);
 	if (a_is_dir == b_is_dir) {
-		char* a_name;
-		char* b_name;
-		a_name = NULL;
-		b_name = NULL;
+		gchar* a_name = NULL;
+		gchar* b_name = NULL;
+		gint _tmp0_;
 		gtk_tree_model_get (model, a, FILE_BROWSER_FILE_COLUMN_NAME, &a_name, -1, -1);
 		gtk_tree_model_get (model, b, FILE_BROWSER_FILE_COLUMN_NAME, &b_name, -1, -1);
-		result = g_utf8_collate (a_name, b_name);
+		_tmp0_ = g_utf8_collate (a_name, b_name);
+		result = _tmp0_;
 		_g_free0 (b_name);
 		_g_free0 (a_name);
 		return result;
 	}
 	if (a_is_dir) {
-		_tmp0_ = -1;
+		_tmp1_ = -1;
 	} else {
-		_tmp0_ = +1;
+		_tmp1_ = +1;
 	}
-	result = _tmp0_;
+	result = _tmp1_;
 	return result;
 }
 
@@ -1161,16 +1391,4 @@ static gint _vala_array_length (gpointer array) {
 }
 
 
-static int _vala_strcmp0 (const char * str1, const char * str2) {
-	if (str1 == NULL) {
-		return -(str1 != str2);
-	}
-	if (str2 == NULL) {
-		return str1 != str2;
-	}
-	return strcmp (str1, str2);
-}
-
-
-
 
diff --git a/src/C/latex_menu.c b/src/C/latex_menu.c
index 23e293f..ac8bc27 100644
--- a/src/C/latex_menu.c
+++ b/src/C/latex_menu.c
@@ -1,4 +1,4 @@
-/* latex_menu.c generated by valac 0.10.3, the Vala compiler
+/* latex_menu.c generated by valac 0.12.1, the Vala compiler
  * generated from latex_menu.vala, do not modify */
 
 /*
@@ -23,10 +23,10 @@
 #include <glib.h>
 #include <glib-object.h>
 #include <gtk/gtk.h>
-#include <glib/gi18n-lib.h>
 #include <config.h>
 #include <stdlib.h>
 #include <string.h>
+#include <glib/gi18n-lib.h>
 #include <gtksourceview/gtksourceview.h>
 
 
@@ -487,29 +487,27 @@ void latex_menu_on_math_right_delimiter_9 (LatexMenu* self);
 static void _latex_menu_on_math_right_delimiter_9_gtk_action_callback (GtkAction* action, gpointer self);
 LatexMenu* latex_menu_new (MainWindow* main_window);
 LatexMenu* latex_menu_construct (GType object_type, MainWindow* main_window);
-static GtkAction* latex_menu_get_menu_tool_action (LatexMenu* self, const char* name, const char* label, const char* stock_id);
-MenuToolAction* menu_tool_action_new (const char* name, const char* label, const char* tooltip, const char* stock_id);
-MenuToolAction* menu_tool_action_construct (GType object_type, const char* name, const char* label, const char* tooltip, const char* stock_id);
+static GtkAction* latex_menu_get_menu_tool_action (LatexMenu* self, const gchar* name, const gchar* label, const gchar* stock_id);
+MenuToolAction* menu_tool_action_new (const gchar* name, const gchar* label, const gchar* tooltip, const gchar* stock_id);
+MenuToolAction* menu_tool_action_construct (GType object_type, const gchar* name, const gchar* label, const gchar* tooltip, const gchar* stock_id);
 GType menu_tool_action_get_type (void) G_GNUC_CONST;
-static void latex_menu_text_buffer_insert (LatexMenu* self, const char* text_before, const char* text_after, const char* text_if_no_selection);
+static void latex_menu_text_buffer_insert (LatexMenu* self, const gchar* text_before, const gchar* text_after, const gchar* text_if_no_selection);
 GType document_tab_get_type (void) G_GNUC_CONST;
 DocumentTab* main_window_get_active_tab (MainWindow* self);
 GType document_get_type (void) G_GNUC_CONST;
 Document* main_window_get_active_document (MainWindow* self);
-char* document_get_current_indentation (Document* self, gint line);
-void document_insert (Document* self, GtkTextIter* iter, const char* text, gint len);
-static char* latex_menu_get_indentation (LatexMenu* self);
+gchar* document_get_current_indentation (Document* self, gint line);
+void document_insert (Document* self, GtkTextIter* iter, const gchar* text, gint len);
+static gchar* latex_menu_get_indentation (LatexMenu* self);
 GType document_view_get_type (void) G_GNUC_CONST;
 DocumentView* main_window_get_active_view (MainWindow* self);
-char* document_view_get_indentation_style (DocumentView* self);
-static void latex_menu_insert_character_style (LatexMenu* self, const char* style);
+gchar* document_view_get_indentation_style (DocumentView* self);
+static void latex_menu_insert_character_style (LatexMenu* self, const gchar* style);
 GType selection_type_get_type (void) G_GNUC_CONST;
 SelectionType document_get_selection_type (Document* self);
 static void latex_menu_finalize (GObject* obj);
-static int _vala_strcmp0 (const char * str1, const char * str2);
-
-static const GtkActionEntry LATEX_MENU_latex_action_entries[202] = {{"Latex", NULL, "_LaTeX"}, {"Sectioning", "sectioning-section", N_ ("_Sectioning")}, {"SectioningPart", "sectioning-part", "\\_part", NULL, N_ ("Part"), (GCallback) _latex_menu_on_sectioning_part_gtk_action_callback}, {"SectioningChapter", "sectioning-chapter", "\\_chapter", NULL, N_ ("Chapter"), (GCallback) _latex_menu_on_sectioning_chapter_gtk_action_callback}, {"SectioningSection", "sectioning-section", "\\_section", NULL, N_ ("Section"), (GCallback) _latex_menu_on_sectioning_section_gtk_action_callback}, {"SectioningSubsection", "sectioning-subsection", "\\s_ubsection", NULL, N_ ("Sub-section"), (GCallback) _latex_menu_on_sectioning_subsection_gtk_action_callback}, {"SectioningSubsubsection", "sectioning-subsubsection", "\\su_bsubsection", NULL, N_ ("Sub-sub-section"), (GCallback) _latex_menu_on_sectioning_subsubsection_gtk_action_callback}, {"SectioningParagraph", "sectioning-paragraph", "\\p_aragraph",
  NULL, N_ ("Paragraph"), (GCallback) _latex_menu_on_sectioning_paragraph_gtk_action_callback}, {"SectioningSubparagraph", "sectioning-paragraph", "\\subpa_ragraph", NULL, N_ ("Sub-paragraph"), (GCallback) _latex_menu_on_sectioning_subparagraph_gtk_action_callback}, {"References", "references", N_ ("_References")}, {"ReferencesLabel", NULL, "\\_label", NULL, N_ ("Label"), (GCallback) _latex_menu_on_ref_label_gtk_action_callback}, {"ReferencesRef", NULL, "\\_ref", NULL, N_ ("Reference to a label"), (GCallback) _latex_menu_on_ref_ref_gtk_action_callback}, {"ReferencesPageref", NULL, "\\_pageref", NULL, N_ ("Page reference to a label"), (GCallback) _latex_menu_on_ref_pageref_gtk_action_callback}, {"ReferencesIndex", NULL, "\\_index", NULL, N_ ("Add a word to the index"), (GCallback) _latex_menu_on_ref_index_gtk_action_callback}, {"ReferencesFootnote", NULL, "\\_footnote", NULL, N_ ("Footnote"), (GCallback) _latex_menu_on_ref_footnote_gtk_action_callback}, {"ReferencesCite", NULL
 , "\\_cite", NULL, N_ ("Reference to a bibliography item"), (GCallback) _latex_menu_on_ref_cite_gtk_action_callback}, {"Environments", GTK_STOCK_JUSTIFY_CENTER, "_Environments"}, {"EnvCenter", GTK_STOCK_JUSTIFY_CENTER, "\\begin{_center}", NULL, N_ ("Center - \\begin{center}"), (GCallback) _latex_menu_on_env_center_gtk_action_callback}, {"EnvLeft", GTK_STOCK_JUSTIFY_LEFT, "\\begin{flush_left}", NULL, N_ ("Align Left - \\begin{flushleft}"), (GCallback) _latex_menu_on_env_left_gtk_action_callback}, {"EnvRight", GTK_STOCK_JUSTIFY_RIGHT, "\\begin{flush_right}", NULL, N_ ("Align Right - \\begin{flushright}"), (GCallback) _latex_menu_on_env_right_gtk_action_callback}, {"EnvFigure", NULL, "\\begin{_figure}", NULL, N_ ("Figure - \\begin{figure}"), (GCallback) _latex_menu_on_env_figure_gtk_action_callback}, {"EnvTable", NULL, "\\begin{_table}", NULL, N_ ("Table - \\begin{table}"), (GCallback) _latex_menu_on_env_table_gtk_action_callback}, {"EnvQuote", NULL, "\\begin{_quote}", NULL, N_
  ("Quote - \\begin{quote}"), (GCallback) _latex_menu_on_env_quote_gtk_action_callback}, {"EnvQuotation", NULL, "\\begin{qu_otation}", NULL, N_ ("Quotation - \\begin{quotation}"), (GCallback) _latex_menu_on_env_quotation_gtk_action_callback}, {"EnvVerse", NULL, "\\begin{_verse}", NULL, N_ ("Verse - \\begin{verse}"), (GCallback) _latex_menu_on_env_verse_gtk_action_callback}, {"EnvVerbatim", NULL, "\\begin{ver_batim}", NULL, N_ ("Verbatim - \\begin{verbatim}"), (GCallback) _latex_menu_on_env_verbatim_gtk_action_callback}, {"EnvMinipage", NULL, "\\begin{_minipage}", NULL, N_ ("Minipage - \\begin{minipage}"), (GCallback) _latex_menu_on_env_minipage_gtk_action_callback}, {"EnvTitlepage", NULL, "\\begin{titlepage}", NULL, N_ ("Title page - \\begin{titlepage}"), (GCallback) _latex_menu_on_env_titlepage_gtk_action_callback}, {"ListEnvironments", "list-enumerate", N_ ("_List Environments")}, {"ListEnvItemize", "list-itemize", "\\begin{_itemize}", NULL, N_ ("Bulleted List - \\begin{ite
 mize}"), (GCallback) _latex_menu_on_list_env_itemize_gtk_action_callback}, {"ListEnvEnumerate", "list-enumerate", "\\begin{_enumerate}", NULL, N_ ("Enumeration - \\begin{enumerate}"), (GCallback) _latex_menu_on_list_env_enumerate_gtk_action_callback}, {"ListEnvDescription", "list-description", "\\begin{_description}", NULL, N_ ("Description - \\begin{description}"), (GCallback) _latex_menu_on_list_env_description_gtk_action_callback}, {"ListEnvList", NULL, "\\begin{_list}", NULL, N_ ("Custom list - \\begin{list}"), (GCallback) _latex_menu_on_list_env_list_gtk_action_callback}, {"ListEnvItem", "list-item", "\\i_tem", "<Alt><Shift>H", N_ ("List item - \\item"), (GCallback) _latex_menu_on_list_env_item_gtk_action_callback}, {"CharacterSize", "character-size", N_ ("_Characters Sizes")}, {"CharacterSizeTiny", NULL, "_tiny", NULL, "tiny", (GCallback) _latex_menu_on_size_tiny_gtk_action_callback}, {"CharacterSizeScriptsize", NULL, "_scriptsize", NULL, "scriptsize", (GCallback) _lat
 ex_menu_on_size_scriptsize_gtk_action_callback}, {"CharacterSizeFootnotesize", NULL, "_footnotesize", NULL, "footnotesize", (GCallback) _latex_menu_on_size_footnotesize_gtk_action_callback}, {"CharacterSizeSmall", NULL, "s_mall", NULL, "small", (GCallback) _latex_menu_on_size_small_gtk_action_callback}, {"CharacterSizeNormalsize", NULL, "_normalsize", NULL, "normalsize", (GCallback) _latex_menu_on_size_normalsize_gtk_action_callback}, {"CharacterSizelarge", NULL, "_large", NULL, "large", (GCallback) _latex_menu_on_size_large_gtk_action_callback}, {"CharacterSizeLarge", NULL, "L_arge", NULL, "Large", (GCallback) _latex_menu_on_size_Large_gtk_action_callback}, {"CharacterSizeLARGE", NULL, "LA_RGE", NULL, "LARGE", (GCallback) _latex_menu_on_size_LARGE_gtk_action_callback}, {"CharacterSizehuge", NULL, "_huge", NULL, "huge", (GCallback) _latex_menu_on_size_huge_gtk_action_callback}, {"CharacterSizeHuge", NULL, "H_uge", NULL, "Huge", (GCallback) _latex_menu_on_size_Huge_gtk_action
 _callback}, {"FontStyles", "bold", N_ ("_Font Styles")}, {"Bold", "bold", "\\text_bf", "<Alt><Shift>B", N_ ("Bold - \\textbf"), (GCallback) _latex_menu_on_text_bold_gtk_action_callback}, {"Italic", "italic", "\\text_it", "<Alt><Shift>I", N_ ("Italic - \\textit"), (GCallback) _latex_menu_on_text_italic_gtk_action_callback}, {"Typewriter", "typewriter", "\\text_tt", "<Alt><Shift>T", N_ ("Typewriter - \\texttt"), (GCallback) _latex_menu_on_text_typewriter_gtk_action_callback}, {"Slanted", "slanted", "\\text_sl", "<Alt><Shift>S", N_ ("Slanted - \\textsl"), (GCallback) _latex_menu_on_text_slanted_gtk_action_callback}, {"SmallCaps", "small_caps", "\\texts_c", "<Alt><Shift>C", N_ ("Small Capitals - \\textsc"), (GCallback) _latex_menu_on_text_small_caps_gtk_action_callback}, {"SansSerif", "sans_serif", "\\texts_f", NULL, N_ ("Sans Serif - \\textsf"), (GCallback) _latex_menu_on_text_sans_serif_gtk_action_callback}, {"Emph", NULL, "\\_emph", NULL, N_ ("Emphasized - \\emph"), (GCallbac
 k) _latex_menu_on_text_emph_gtk_action_callback}, {"Underline", "underline", "\\_underline", NULL, N_ ("Underline - \\underline"), (GCallback) _latex_menu_on_text_underline_gtk_action_callback}, {"FontFamily", NULL, N_ ("_Font Family")}, {"FontFamilyRoman", "roman", "\\_rmfamily", NULL, N_ ("Roman - \\rmfamily"), (GCallback) _latex_menu_on_text_font_family_roman_gtk_action_callback}, {"FontFamilySansSerif", "sans_serif", "\\_sffamily", NULL, N_ ("Sans Serif - \\sffamily"), (GCallback) _latex_menu_on_text_font_family_sans_serif_gtk_action_callback}, {"FontFamilyMonospace", "typewriter", "\\_ttfamily", NULL, N_ ("Monospace - \\ttfamily"), (GCallback) _latex_menu_on_text_font_family_monospace_gtk_action_callback}, {"FontSeries", NULL, N_ ("F_ont Series")}, {"FontSeriesMedium", "roman", "\\_mdseries", NULL, N_ ("Medium - \\mdseries"), (GCallback) _latex_menu_on_text_font_series_medium_gtk_action_callback}, {"FontSeriesBold", "bold", "\\_bfseries", NULL, N_ ("Bold - \\bfseries"),
  (GCallback) _latex_menu_on_text_font_series_bold_gtk_action_callback}, {"FontShape", NULL, N_ ("Fo_nt Shape")}, {"FontShapeUpright", "roman", "\\_upshape", NULL, N_ ("Upright - \\upshape"), (GCallback) _latex_menu_on_text_font_shape_upright_gtk_action_callback}, {"FontShapeItalic", "italic", "\\_itshape", NULL, N_ ("Italic - \\itshape"), (GCallback) _latex_menu_on_text_font_shape_italic_gtk_action_callback}, {"FontShapeSlanted", "slanted", "\\_slshape", NULL, N_ ("Slanted - \\slshape"), (GCallback) _latex_menu_on_text_font_shape_slanted_gtk_action_callback}, {"FontShapeSmallCaps", "small_caps", "\\s_cshape", NULL, N_ ("Small Capitals - \\scshape"), (GCallback) _latex_menu_on_text_font_shape_small_caps_gtk_action_callback}, {"Tabular", NULL, N_ ("_Tabular")}, {"TabularTabbing", NULL, "\\begin{ta_bbing}", NULL, N_ ("Tabbing - \\begin{tabbing}"), (GCallback) _latex_menu_on_tabular_tabbing_gtk_action_callback}, {"TabularTabular", NULL, "\\begin{_tabular}", NULL, N_ ("Tabular - 
 \\begin{tabular}"), (GCallback) _latex_menu_on_tabular_tabular_gtk_action_callback}, {"TabularMulticolumn", NULL, "\\_multicolumn", NULL, N_ ("Multicolumn - \\multicolumn"), (GCallback) _latex_menu_on_tabular_multicolumn_gtk_action_callback}, {"TabularHline", NULL, "\\_hline", NULL, N_ ("Horizontal line - \\hline"), (GCallback) _latex_menu_on_tabular_hline_gtk_action_callback}, {"TabularVline", NULL, "\\_vline", NULL, N_ ("Vertical line - \\vline"), (GCallback) _latex_menu_on_tabular_vline_gtk_action_callback}, {"TabularCline", NULL, "\\_cline", NULL, N_ ("Horizontal line (columns specified) - \\cline"), (GCallback) _latex_menu_on_tabular_cline_gtk_action_callback}, {"Spacing", NULL, N_ ("_Spacing")}, {"SpacingNewLine", NULL, N_ ("New _Line"), NULL, N_ ("New Line - \\\\"), (GCallback) _latex_menu_on_spacing_new_line_gtk_action_callback}, {"SpacingNewPage", NULL, "\\new_page", NULL, N_ ("New page - \\newpage"), (GCallback) _latex_menu_on_spacing_new_page_gtk_action_callback},
  {"SpacingLineBreak", NULL, "\\l_inebreak", NULL, N_ ("Line break - \\linebreak"), (GCallback) _latex_menu_on_spacing_line_break_gtk_action_callback}, {"SpacingPageBreak", NULL, "\\p_agebreak", NULL, N_ ("Page break - \\pagebreak"), (GCallback) _latex_menu_on_spacing_page_break_gtk_action_callback}, {"SpacingBigSkip", NULL, "\\_bigskip", NULL, N_ ("Big skip - \\bigskip"), (GCallback) _latex_menu_on_spacing_bigskip_gtk_action_callback}, {"SpacingMedSkip", NULL, "\\_medskip", NULL, N_ ("Medium skip - \\medskip"), (GCallback) _latex_menu_on_spacing_medskip_gtk_action_callback}, {"SpacingHSpace", NULL, "\\_hspace", NULL, N_ ("Horizontal space - \\hspace"), (GCallback) _latex_menu_on_spacing_hspace_gtk_action_callback}, {"SpacingVSpace", NULL, "\\_vspace", NULL, N_ ("Vertical space - \\vspace"), (GCallback) _latex_menu_on_spacing_vspace_gtk_action_callback}, {"SpacingNoIndent", NULL, "\\_noindent", NULL, N_ ("No paragraph indentation - \\noindent"), (GCallback) _latex_menu_on_spa
 cing_noindent_gtk_action_callback}, {"Accents", NULL, N_ ("International _Accents")}, {"Accent0", "accent0", "\\'", NULL, N_ ("Acute accent - \\'"), (GCallback) _latex_menu_on_accent0_gtk_action_callback}, {"Accent1", "accent1", "\\`", NULL, N_ ("Grave accent - \\`"), (GCallback) _latex_menu_on_accent1_gtk_action_callback}, {"Accent2", "accent2", "\\^", NULL, N_ ("Circumflex accent - \\^"), (GCallback) _latex_menu_on_accent2_gtk_action_callback}, {"Accent3", "accent3", "\\\"", NULL, N_ ("Trema - \\\""), (GCallback) _latex_menu_on_accent3_gtk_action_callback}, {"Accent4", "accent4", "\\~", NULL, N_ ("Tilde - \\~"), (GCallback) _latex_menu_on_accent4_gtk_action_callback}, {"Accent5", "accent5", "\\=", NULL, N_ ("Macron - \\="), (GCallback) _latex_menu_on_accent5_gtk_action_callback}, {"Accent6", "accent6", "\\.", NULL, N_ ("Dot - \\."), (GCallback) _latex_menu_on_accent6_gtk_action_callback}, {"Accent7", "accent7", "\\v", NULL, N_ ("Caron - \\v"), (GCallback) _latex_menu_on_ac
 cent7_gtk_action_callback}, {"Accent8", "accent8", "\\u", NULL, N_ ("Breve - \\u"), (GCallback) _latex_menu_on_accent8_gtk_action_callback}, {"Accent9", "accent9", "\\H", NULL, N_ ("Double acute accent - \\H"), (GCallback) _latex_menu_on_accent9_gtk_action_callback}, {"Accent10", "accent10", "\\c", NULL, NULL, (GCallback) _latex_menu_on_accent10_gtk_action_callback}, {"Accent11", "accent11", "\\k", NULL, NULL, (GCallback) _latex_menu_on_accent11_gtk_action_callback}, {"Accent12", "accent12", "\\d", NULL, NULL, (GCallback) _latex_menu_on_accent12_gtk_action_callback}, {"Accent13", "accent13", "\\b", NULL, NULL, (GCallback) _latex_menu_on_accent13_gtk_action_callback}, {"Accent14", "accent14", "\\r", NULL, NULL, (GCallback) _latex_menu_on_accent14_gtk_action_callback}, {"Accent15", "accent15", "\\t", NULL, NULL, (GCallback) _latex_menu_on_accent15_gtk_action_callback}, {"LatexMisc", NULL, N_ ("_Misc")}, {"LatexDocumentClass", NULL, "\\_documentclass", NULL, N_ ("Document class
  - \\documentclass"), (GCallback) _latex_menu_on_documentclass_gtk_action_callback}, {"LatexUsepackage", NULL, "\\_usepackage", NULL, N_ ("Use package - \\usepackage"), (GCallback) _latex_menu_on_usepackage_gtk_action_callback}, {"LatexAMS", NULL, N_ ("_AMS packages"), NULL, N_ ("AMS packages"), (GCallback) _latex_menu_on_ams_packages_gtk_action_callback}, {"LatexAuthor", NULL, "\\au_thor", NULL, N_ ("Author - \\author"), (GCallback) _latex_menu_on_author_gtk_action_callback}, {"LatexTitle", NULL, "\\t_itle", NULL, N_ ("Title - \\title"), (GCallback) _latex_menu_on_title_gtk_action_callback}, {"LatexBeginDocument", NULL, "\\begin{d_ocument}", NULL, N_ ("Content of the document - \\begin{document}"), (GCallback) _latex_menu_on_begin_document_gtk_action_callback}, {"LatexMakeTitle", NULL, "\\_maketitle", NULL, N_ ("Make title - \\maketitle"), (GCallback) _latex_menu_on_maketitle_gtk_action_callback}, {"LatexTableOfContents", NULL, "\\tableof_contents", NULL, N_ ("Table of cont
 ents - \\tableofcontents"), (GCallback) _latex_menu_on_tableofcontents_gtk_action_callback}, {"LatexAbstract", NULL, "\\begin{abst_ract}", NULL, N_ ("Abstract - \\begin{abstract}"), (GCallback) _latex_menu_on_abstract_gtk_action_callback}, {"LatexIncludeGraphics", NULL, "\\include_graphics", NULL, N_ ("Include an image (graphicx package) - \\includegraphics"), (GCallback) _latex_menu_on_include_graphics_gtk_action_callback}, {"LatexInput", NULL, "\\_input", NULL, N_ ("Include a file - \\input"), (GCallback) _latex_menu_on_input_gtk_action_callback}, {"Math", NULL, N_ ("_Math")}, {"MathEnvironments", NULL, N_ ("_Math Environments")}, {"MathEnvNormal", "math", N_ ("_Mathematical Environment - $...$"), "<Alt><Shift>M", N_ ("Mathematical Environment - $...$"), (GCallback) _latex_menu_on_math_env_normal_gtk_action_callback}, {"MathEnvCentered", "math-centered", N_ ("_Centered Formula - \\[...\\]"), "<Alt><Shift>E", N_ ("Centered Formula - \\[...\\]"), (GCallback) _latex_menu_on_m
 ath_env_centered_gtk_action_callback}, {"MathEnvNumbered", "math-numbered", N_ ("_Numbered Equation - \\begin{equation}"), NULL, N_ ("Numbered Equation - \\begin{equation}"), (GCallback) _latex_menu_on_math_env_numbered_gtk_action_callback}, {"MathEnvArray", "math-array", N_ ("_Array of Equations - \\begin{align*}"), NULL, N_ ("Array of Equations - \\begin{align*}"), (GCallback) _latex_menu_on_math_env_array_gtk_action_callback}, {"MathEnvNumberedArray", "math-numbered-array", N_ ("Numbered Array of _Equations - \\begin{align}"), NULL, N_ ("Numbered Array of Equations - \\begin{align}"), (GCallback) _latex_menu_on_math_env_numbered_array_gtk_action_callback}, {"MathSuperscript", "math-superscript", N_ ("_Superscript - ^{}"), NULL, N_ ("Superscript - ^{}"), (GCallback) _latex_menu_on_math_superscript_gtk_action_callback}, {"MathSubscript", "math-subscript", N_ ("Su_bscript - __{}"), NULL, N_ ("Subscript - _{}"), (GCallback) _latex_menu_on_math_subscript_gtk_action_callback}, 
 {"MathFrac", "math-frac", N_ ("_Fraction - \\frac{}{}"), "<Alt><Shift>F", N_ ("Fraction - \\frac{}{}"), (GCallback) _latex_menu_on_math_frac_gtk_action_callback}, {"MathSquareRoot", "math-square-root", N_ ("Square _Root - \\sqrt{}"), NULL, N_ ("Square Root - \\sqrt{}"), (GCallback) _latex_menu_on_math_square_root_gtk_action_callback}, {"MathNthRoot", "math-nth-root", N_ ("_N-th Root - \\sqrt[]{}"), NULL, N_ ("N-th Root - \\sqrt[]{}"), (GCallback) _latex_menu_on_math_nth_root_gtk_action_callback}, {"MathFunctions", NULL, N_ ("Math _Functions")}, {"MathFuncArccos", NULL, "\\arccos", NULL, NULL, (GCallback) _latex_menu_on_math_func_arccos_gtk_action_callback}, {"MathFuncArcsin", NULL, "\\arcsin", NULL, NULL, (GCallback) _latex_menu_on_math_func_arcsin_gtk_action_callback}, {"MathFuncArctan", NULL, "\\arctan", NULL, NULL, (GCallback) _latex_menu_on_math_func_arctan_gtk_action_callback}, {"MathFuncCos", NULL, "\\cos", NULL, NULL, (GCallback) _latex_menu_on_math_func_cos_gtk_actio
 n_callback}, {"MathFuncCosh", NULL, "\\cosh", NULL, NULL, (GCallback) _latex_menu_on_math_func_cosh_gtk_action_callback}, {"MathFuncCot", NULL, "\\cot", NULL, NULL, (GCallback) _latex_menu_on_math_func_cot_gtk_action_callback}, {"MathFuncCoth", NULL, "\\coth", NULL, NULL, (GCallback) _latex_menu_on_math_func_coth_gtk_action_callback}, {"MathFuncCsc", NULL, "\\csc", NULL, NULL, (GCallback) _latex_menu_on_math_func_csc_gtk_action_callback}, {"MathFuncDeg", NULL, "\\deg", NULL, NULL, (GCallback) _latex_menu_on_math_func_deg_gtk_action_callback}, {"MathFuncDet", NULL, "\\det", NULL, NULL, (GCallback) _latex_menu_on_math_func_det_gtk_action_callback}, {"MathFuncDim", NULL, "\\dim", NULL, NULL, (GCallback) _latex_menu_on_math_func_dim_gtk_action_callback}, {"MathFuncExp", NULL, "\\exp", NULL, NULL, (GCallback) _latex_menu_on_math_func_exp_gtk_action_callback}, {"MathFuncGcd", NULL, "\\gcd", NULL, NULL, (GCallback) _latex_menu_on_math_func_gcd_gtk_action_callback}, {"MathFuncHom", 
 NULL, "\\hom", NULL, NULL, (GCallback) _latex_menu_on_math_func_hom_gtk_action_callback}, {"MathFuncInf", NULL, "\\inf", NULL, NULL, (GCallback) _latex_menu_on_math_func_inf_gtk_action_callback}, {"MathFuncKer", NULL, "\\ker", NULL, NULL, (GCallback) _latex_menu_on_math_func_ker_gtk_action_callback}, {"MathFuncLg", NULL, "\\lg", NULL, NULL, (GCallback) _latex_menu_on_math_func_lg_gtk_action_callback}, {"MathFuncLim", NULL, "\\lim", NULL, NULL, (GCallback) _latex_menu_on_math_func_lim_gtk_action_callback}, {"MathFuncLiminf", NULL, "\\liminf", NULL, NULL, (GCallback) _latex_menu_on_math_func_liminf_gtk_action_callback}, {"MathFuncLimsup", NULL, "\\limsup", NULL, NULL, (GCallback) _latex_menu_on_math_func_limsup_gtk_action_callback}, {"MathFuncLn", NULL, "\\ln", NULL, NULL, (GCallback) _latex_menu_on_math_func_ln_gtk_action_callback}, {"MathFuncLog", NULL, "\\log", NULL, NULL, (GCallback) _latex_menu_on_math_func_log_gtk_action_callback}, {"MathFuncMax", NULL, "\\max", NULL, NU
 LL, (GCallback) _latex_menu_on_math_func_max_gtk_action_callback}, {"MathFuncMin", NULL, "\\min", NULL, NULL, (GCallback) _latex_menu_on_math_func_min_gtk_action_callback}, {"MathFuncSec", NULL, "\\sec", NULL, NULL, (GCallback) _latex_menu_on_math_func_sec_gtk_action_callback}, {"MathFuncSin", NULL, "\\sin", NULL, NULL, (GCallback) _latex_menu_on_math_func_sin_gtk_action_callback}, {"MathFuncSinh", NULL, "\\sinh", NULL, NULL, (GCallback) _latex_menu_on_math_func_sinh_gtk_action_callback}, {"MathFuncSup", NULL, "\\sup", NULL, NULL, (GCallback) _latex_menu_on_math_func_sup_gtk_action_callback}, {"MathFuncTan", NULL, "\\tan", NULL, NULL, (GCallback) _latex_menu_on_math_func_tan_gtk_action_callback}, {"MathFuncTanh", NULL, "\\tanh", NULL, NULL, (GCallback) _latex_menu_on_math_func_tanh_gtk_action_callback}, {"MathFontStyles", NULL, N_ ("Math Font _Styles")}, {"MathFSrm", "roman", "\\math_rm", NULL, N_ ("Roman - \\mathrm"), (GCallback) _latex_menu_on_math_font_style_rm_gtk_action
 _callback}, {"MathFSit", "italic", "\\math_it", NULL, N_ ("Italic - \\mathit"), (GCallback) _latex_menu_on_math_font_style_it_gtk_action_callback}, {"MathFSbf", "bold", "\\math_bf", NULL, N_ ("Bold - \\mathbf"), (GCallback) _latex_menu_on_math_font_style_bf_gtk_action_callback}, {"MathFSsf", "sans_serif", "\\math_sf", NULL, N_ ("Sans Serif - \\mathsf"), (GCallback) _latex_menu_on_math_font_style_sf_gtk_action_callback}, {"MathFStt", "typewriter", "\\math_tt", NULL, N_ ("Typewriter - \\mathtt"), (GCallback) _latex_menu_on_math_font_style_tt_gtk_action_callback}, {"MathFScal", "mathcal", "\\math_cal", NULL, N_ ("Calligraphic - \\mathcal"), (GCallback) _latex_menu_on_math_font_style_cal_gtk_action_callback}, {"MathFSbb", "blackboard", "\\_mathbb", NULL, N_ ("Blackboard (uppercase only)  - \\mathbb (amsfonts package)"), (GCallback) _latex_menu_on_math_font_style_bb_gtk_action_callback}, {"MathFSfrak", "mathfrak", "\\math_frak", NULL, N_ ("Euler Fraktur - \\mathfrak (amsfonts pac
 kage)"), (GCallback) _latex_menu_on_math_font_style_frak_gtk_action_callback}, {"MathAccents", NULL, N_ ("Math _Accents")}, {"MathAccentAcute", "mathaccent0", "\\_acute", NULL, NULL, (GCallback) _latex_menu_on_math_accent_acute_gtk_action_callback}, {"MathAccentGrave", "mathaccent1", "\\_grave", NULL, NULL, (GCallback) _latex_menu_on_math_accent_grave_gtk_action_callback}, {"MathAccentTilde", "mathaccent2", "\\_tilde", NULL, NULL, (GCallback) _latex_menu_on_math_accent_tilde_gtk_action_callback}, {"MathAccentBar", "mathaccent3", "\\_bar", NULL, NULL, (GCallback) _latex_menu_on_math_accent_bar_gtk_action_callback}, {"MathAccentVec", "mathaccent4", "\\_vec", NULL, NULL, (GCallback) _latex_menu_on_math_accent_vec_gtk_action_callback}, {"MathAccentHat", "mathaccent5", "\\_hat", NULL, NULL, (GCallback) _latex_menu_on_math_accent_hat_gtk_action_callback}, {"MathAccentCheck", "mathaccent6", "\\_check", NULL, NULL, (GCallback) _latex_menu_on_math_accent_check_gtk_action_callback}, {
 "MathAccentBreve", "mathaccent7", "\\b_reve", NULL, NULL, (GCallback) _latex_menu_on_math_accent_breve_gtk_action_callback}, {"MathAccentDot", "mathaccent8", "\\_dot", NULL, NULL, (GCallback) _latex_menu_on_math_accent_dot_gtk_action_callback}, {"MathAccentDdot", "mathaccent9", "\\dd_ot", NULL, NULL, (GCallback) _latex_menu_on_math_accent_ddot_gtk_action_callback}, {"MathAccentRing", "mathaccent10", "\\_mathring", NULL, NULL, (GCallback) _latex_menu_on_math_accent_ring_gtk_action_callback}, {"MathSpaces", NULL, N_ ("Math _Spaces")}, {"MathSpaceSmall", NULL, N_ ("_Small"), NULL, N_ ("Small - \\,"), (GCallback) _latex_menu_on_math_space_small_gtk_action_callback}, {"MathSpaceMedium", NULL, N_ ("_Medium"), NULL, N_ ("Medium - \\:"), (GCallback) _latex_menu_on_math_space_medium_gtk_action_callback}, {"MathSpaceLarge", NULL, N_ ("_Large"), NULL, N_ ("Large - \\;"), (GCallback) _latex_menu_on_math_space_large_gtk_action_callback}, {"MathSpaceQuad", NULL, "\\_quad", NULL, NULL, (GC
 allback) _latex_menu_on_math_space_quad_gtk_action_callback}, {"MathSpaceQquad", NULL, "\\qqu_ad", NULL, NULL, (GCallback) _latex_menu_on_math_space_qquad_gtk_action_callback}, {"MathLeftDelimiters", "delimiters-left", N_ ("_Left Delimiters")}, {"MathLeftDelimiter1", NULL, N_ ("left ("), NULL, NULL, (GCallback) _latex_menu_on_math_left_delimiter_1_gtk_action_callback}, {"MathLeftDelimiter2", NULL, N_ ("left ["), NULL, NULL, (GCallback) _latex_menu_on_math_left_delimiter_2_gtk_action_callback}, {"MathLeftDelimiter3", NULL, N_ ("left { "), NULL, NULL, (GCallback) _latex_menu_on_math_left_delimiter_3_gtk_action_callback}, {"MathLeftDelimiter4", NULL, N_ ("left <"), NULL, NULL, (GCallback) _latex_menu_on_math_left_delimiter_4_gtk_action_callback}, {"MathLeftDelimiter5", NULL, N_ ("left )"), NULL, NULL, (GCallback) _latex_menu_on_math_left_delimiter_5_gtk_action_callback}, {"MathLeftDelimiter6", NULL, N_ ("left ]"), NULL, NULL, (GCallback) _latex_menu_on_math_left_delimiter_6_gtk
 _action_callback}, {"MathLeftDelimiter7", NULL, N_ ("left  }"), NULL, NULL, (GCallback) _latex_menu_on_math_left_delimiter_7_gtk_action_callback}, {"MathLeftDelimiter8", NULL, N_ ("left >"), NULL, NULL, (GCallback) _latex_menu_on_math_left_delimiter_8_gtk_action_callback}, {"MathLeftDelimiter9", NULL, N_ ("left ."), NULL, NULL, (GCallback) _latex_menu_on_math_left_delimiter_9_gtk_action_callback}, {"MathRightDelimiters", "delimiters-right", N_ ("Right _Delimiters")}, {"MathRightDelimiter1", NULL, N_ ("right )"), NULL, NULL, (GCallback) _latex_menu_on_math_right_delimiter_1_gtk_action_callback}, {"MathRightDelimiter2", NULL, N_ ("right ]"), NULL, NULL, (GCallback) _latex_menu_on_math_right_delimiter_2_gtk_action_callback}, {"MathRightDelimiter3", NULL, N_ ("right  }"), NULL, NULL, (GCallback) _latex_menu_on_math_right_delimiter_3_gtk_action_callback}, {"MathRightDelimiter4", NULL, N_ ("right >"), NULL, NULL, (GCallback) _latex_menu_on_math_right_delimiter_4_gtk_action_callbac
 k}, {"MathRightDelimiter5", NULL, N_ ("right ("), NULL, NULL, (GCallback) _latex_menu_on_math_right_delimiter_5_gtk_action_callback}, {"MathRightDelimiter6", NULL, N_ ("right ["), NULL, NULL, (GCallback) _latex_menu_on_math_right_delimiter_6_gtk_action_callback}, {"MathRightDelimiter7", NULL, N_ ("right { "), NULL, NULL, (GCallback) _latex_menu_on_math_right_delimiter_7_gtk_action_callback}, {"MathRightDelimiter8", NULL, N_ ("right <"), NULL, NULL, (GCallback) _latex_menu_on_math_right_delimiter_8_gtk_action_callback}, {"MathRightDelimiter9", NULL, N_ ("right ."), NULL, NULL, (GCallback) _latex_menu_on_math_right_delimiter_9_gtk_action_callback}};
 
+static const GtkActionEntry LATEX_MENU_latex_action_entries[202] = {{"Latex", NULL, "_LaTeX"}, {"Sectioning", "sectioning-section", "_Sectioning"}, {"SectioningPart", "sectioning-part", "\\_part", NULL, "Part", (GCallback) _latex_menu_on_sectioning_part_gtk_action_callback}, {"SectioningChapter", "sectioning-chapter", "\\_chapter", NULL, "Chapter", (GCallback) _latex_menu_on_sectioning_chapter_gtk_action_callback}, {"SectioningSection", "sectioning-section", "\\_section", NULL, "Section", (GCallback) _latex_menu_on_sectioning_section_gtk_action_callback}, {"SectioningSubsection", "sectioning-subsection", "\\s_ubsection", NULL, "Sub-section", (GCallback) _latex_menu_on_sectioning_subsection_gtk_action_callback}, {"SectioningSubsubsection", "sectioning-subsubsection", "\\su_bsubsection", NULL, "Sub-sub-section", (GCallback) _latex_menu_on_sectioning_subsubsection_gtk_action_callback}, {"SectioningParagraph", "sectioning-paragraph", "\\p_aragraph", NULL, "Paragraph", (GCallback
 ) _latex_menu_on_sectioning_paragraph_gtk_action_callback}, {"SectioningSubparagraph", "sectioning-paragraph", "\\subpa_ragraph", NULL, "Sub-paragraph", (GCallback) _latex_menu_on_sectioning_subparagraph_gtk_action_callback}, {"References", "references", "_References"}, {"ReferencesLabel", NULL, "\\_label", NULL, "Label", (GCallback) _latex_menu_on_ref_label_gtk_action_callback}, {"ReferencesRef", NULL, "\\_ref", NULL, "Reference to a label", (GCallback) _latex_menu_on_ref_ref_gtk_action_callback}, {"ReferencesPageref", NULL, "\\_pageref", NULL, "Page reference to a label", (GCallback) _latex_menu_on_ref_pageref_gtk_action_callback}, {"ReferencesIndex", NULL, "\\_index", NULL, "Add a word to the index", (GCallback) _latex_menu_on_ref_index_gtk_action_callback}, {"ReferencesFootnote", NULL, "\\_footnote", NULL, "Footnote", (GCallback) _latex_menu_on_ref_footnote_gtk_action_callback}, {"ReferencesCite", NULL, "\\_cite", NULL, "Reference to a bibliography item", (GCallback) _la
 tex_menu_on_ref_cite_gtk_action_callback}, {"Environments", GTK_STOCK_JUSTIFY_CENTER, "_Environments"}, {"EnvCenter", GTK_STOCK_JUSTIFY_CENTER, "\\begin{_center}", NULL, "Center - \\begin{center}", (GCallback) _latex_menu_on_env_center_gtk_action_callback}, {"EnvLeft", GTK_STOCK_JUSTIFY_LEFT, "\\begin{flush_left}", NULL, "Align Left - \\begin{flushleft}", (GCallback) _latex_menu_on_env_left_gtk_action_callback}, {"EnvRight", GTK_STOCK_JUSTIFY_RIGHT, "\\begin{flush_right}", NULL, "Align Right - \\begin{flushright}", (GCallback) _latex_menu_on_env_right_gtk_action_callback}, {"EnvFigure", NULL, "\\begin{_figure}", NULL, "Figure - \\begin{figure}", (GCallback) _latex_menu_on_env_figure_gtk_action_callback}, {"EnvTable", NULL, "\\begin{_table}", NULL, "Table - \\begin{table}", (GCallback) _latex_menu_on_env_table_gtk_action_callback}, {"EnvQuote", NULL, "\\begin{_quote}", NULL, "Quote - \\begin{quote}", (GCallback) _latex_menu_on_env_quote_gtk_action_callback}, {"EnvQuotation", 
 NULL, "\\begin{qu_otation}", NULL, "Quotation - \\begin{quotation}", (GCallback) _latex_menu_on_env_quotation_gtk_action_callback}, {"EnvVerse", NULL, "\\begin{_verse}", NULL, "Verse - \\begin{verse}", (GCallback) _latex_menu_on_env_verse_gtk_action_callback}, {"EnvVerbatim", NULL, "\\begin{ver_batim}", NULL, "Verbatim - \\begin{verbatim}", (GCallback) _latex_menu_on_env_verbatim_gtk_action_callback}, {"EnvMinipage", NULL, "\\begin{_minipage}", NULL, "Minipage - \\begin{minipage}", (GCallback) _latex_menu_on_env_minipage_gtk_action_callback}, {"EnvTitlepage", NULL, "\\begin{titlepage}", NULL, "Title page - \\begin{titlepage}", (GCallback) _latex_menu_on_env_titlepage_gtk_action_callback}, {"ListEnvironments", "list-enumerate", "_List Environments"}, {"ListEnvItemize", "list-itemize", "\\begin{_itemize}", NULL, "Bulleted List - \\begin{itemize}", (GCallback) _latex_menu_on_list_env_itemize_gtk_action_callback}, {"ListEnvEnumerate", "list-enumerate", "\\begin{_enumerate}", NUL
 L, "Enumeration - \\begin{enumerate}", (GCallback) _latex_menu_on_list_env_enumerate_gtk_action_callback}, {"ListEnvDescription", "list-description", "\\begin{_description}", NULL, "Description - \\begin{description}", (GCallback) _latex_menu_on_list_env_description_gtk_action_callback}, {"ListEnvList", NULL, "\\begin{_list}", NULL, "Custom list - \\begin{list}", (GCallback) _latex_menu_on_list_env_list_gtk_action_callback}, {"ListEnvItem", "list-item", "\\i_tem", "<Alt><Shift>H", "List item - \\item", (GCallback) _latex_menu_on_list_env_item_gtk_action_callback}, {"CharacterSize", "character-size", "_Characters Sizes"}, {"CharacterSizeTiny", NULL, "_tiny", NULL, "tiny", (GCallback) _latex_menu_on_size_tiny_gtk_action_callback}, {"CharacterSizeScriptsize", NULL, "_scriptsize", NULL, "scriptsize", (GCallback) _latex_menu_on_size_scriptsize_gtk_action_callback}, {"CharacterSizeFootnotesize", NULL, "_footnotesize", NULL, "footnotesize", (GCallback) _latex_menu_on_size_footnotes
 ize_gtk_action_callback}, {"CharacterSizeSmall", NULL, "s_mall", NULL, "small", (GCallback) _latex_menu_on_size_small_gtk_action_callback}, {"CharacterSizeNormalsize", NULL, "_normalsize", NULL, "normalsize", (GCallback) _latex_menu_on_size_normalsize_gtk_action_callback}, {"CharacterSizelarge", NULL, "_large", NULL, "large", (GCallback) _latex_menu_on_size_large_gtk_action_callback}, {"CharacterSizeLarge", NULL, "L_arge", NULL, "Large", (GCallback) _latex_menu_on_size_Large_gtk_action_callback}, {"CharacterSizeLARGE", NULL, "LA_RGE", NULL, "LARGE", (GCallback) _latex_menu_on_size_LARGE_gtk_action_callback}, {"CharacterSizehuge", NULL, "_huge", NULL, "huge", (GCallback) _latex_menu_on_size_huge_gtk_action_callback}, {"CharacterSizeHuge", NULL, "H_uge", NULL, "Huge", (GCallback) _latex_menu_on_size_Huge_gtk_action_callback}, {"FontStyles", "bold", "_Font Styles"}, {"Bold", "bold", "\\text_bf", "<Alt><Shift>B", "Bold - \\textbf", (GCallback) _latex_menu_on_text_bold_gtk_action
 _callback}, {"Italic", "italic", "\\text_it", "<Alt><Shift>I", "Italic - \\textit", (GCallback) _latex_menu_on_text_italic_gtk_action_callback}, {"Typewriter", "typewriter", "\\text_tt", "<Alt><Shift>T", "Typewriter - \\texttt", (GCallback) _latex_menu_on_text_typewriter_gtk_action_callback}, {"Slanted", "slanted", "\\text_sl", "<Alt><Shift>S", "Slanted - \\textsl", (GCallback) _latex_menu_on_text_slanted_gtk_action_callback}, {"SmallCaps", "small_caps", "\\texts_c", "<Alt><Shift>C", "Small Capitals - \\textsc", (GCallback) _latex_menu_on_text_small_caps_gtk_action_callback}, {"SansSerif", "sans_serif", "\\texts_f", NULL, "Sans Serif - \\textsf", (GCallback) _latex_menu_on_text_sans_serif_gtk_action_callback}, {"Emph", NULL, "\\_emph", NULL, "Emphasized - \\emph", (GCallback) _latex_menu_on_text_emph_gtk_action_callback}, {"Underline", "underline", "\\_underline", NULL, "Underline - \\underline", (GCallback) _latex_menu_on_text_underline_gtk_action_callback}, {"FontFamily", 
 NULL, "_Font Family"}, {"FontFamilyRoman", "roman", "\\_rmfamily", NULL, "Roman - \\rmfamily", (GCallback) _latex_menu_on_text_font_family_roman_gtk_action_callback}, {"FontFamilySansSerif", "sans_serif", "\\_sffamily", NULL, "Sans Serif - \\sffamily", (GCallback) _latex_menu_on_text_font_family_sans_serif_gtk_action_callback}, {"FontFamilyMonospace", "typewriter", "\\_ttfamily", NULL, "Monospace - \\ttfamily", (GCallback) _latex_menu_on_text_font_family_monospace_gtk_action_callback}, {"FontSeries", NULL, "F_ont Series"}, {"FontSeriesMedium", "roman", "\\_mdseries", NULL, "Medium - \\mdseries", (GCallback) _latex_menu_on_text_font_series_medium_gtk_action_callback}, {"FontSeriesBold", "bold", "\\_bfseries", NULL, "Bold - \\bfseries", (GCallback) _latex_menu_on_text_font_series_bold_gtk_action_callback}, {"FontShape", NULL, "Fo_nt Shape"}, {"FontShapeUpright", "roman", "\\_upshape", NULL, "Upright - \\upshape", (GCallback) _latex_menu_on_text_font_shape_upright_gtk_action_ca
 llback}, {"FontShapeItalic", "italic", "\\_itshape", NULL, "Italic - \\itshape", (GCallback) _latex_menu_on_text_font_shape_italic_gtk_action_callback}, {"FontShapeSlanted", "slanted", "\\_slshape", NULL, "Slanted - \\slshape", (GCallback) _latex_menu_on_text_font_shape_slanted_gtk_action_callback}, {"FontShapeSmallCaps", "small_caps", "\\s_cshape", NULL, "Small Capitals - \\scshape", (GCallback) _latex_menu_on_text_font_shape_small_caps_gtk_action_callback}, {"Tabular", NULL, "_Tabular"}, {"TabularTabbing", NULL, "\\begin{ta_bbing}", NULL, "Tabbing - \\begin{tabbing}", (GCallback) _latex_menu_on_tabular_tabbing_gtk_action_callback}, {"TabularTabular", NULL, "\\begin{_tabular}", NULL, "Tabular - \\begin{tabular}", (GCallback) _latex_menu_on_tabular_tabular_gtk_action_callback}, {"TabularMulticolumn", NULL, "\\_multicolumn", NULL, "Multicolumn - \\multicolumn", (GCallback) _latex_menu_on_tabular_multicolumn_gtk_action_callback}, {"TabularHline", NULL, "\\_hline", NULL, "Horiz
 ontal line - \\hline", (GCallback) _latex_menu_on_tabular_hline_gtk_action_callback}, {"TabularVline", NULL, "\\_vline", NULL, "Vertical line - \\vline", (GCallback) _latex_menu_on_tabular_vline_gtk_action_callback}, {"TabularCline", NULL, "\\_cline", NULL, "Horizontal line (columns specified) - \\cline", (GCallback) _latex_menu_on_tabular_cline_gtk_action_callback}, {"Spacing", NULL, "_Spacing"}, {"SpacingNewLine", NULL, "New _Line", NULL, "New Line - \\\\", (GCallback) _latex_menu_on_spacing_new_line_gtk_action_callback}, {"SpacingNewPage", NULL, "\\new_page", NULL, "New page - \\newpage", (GCallback) _latex_menu_on_spacing_new_page_gtk_action_callback}, {"SpacingLineBreak", NULL, "\\l_inebreak", NULL, "Line break - \\linebreak", (GCallback) _latex_menu_on_spacing_line_break_gtk_action_callback}, {"SpacingPageBreak", NULL, "\\p_agebreak", NULL, "Page break - \\pagebreak", (GCallback) _latex_menu_on_spacing_page_break_gtk_action_callback}, {"SpacingBigSkip", NULL, "\\_bigsk
 ip", NULL, "Big skip - \\bigskip", (GCallback) _latex_menu_on_spacing_bigskip_gtk_action_callback}, {"SpacingMedSkip", NULL, "\\_medskip", NULL, "Medium skip - \\medskip", (GCallback) _latex_menu_on_spacing_medskip_gtk_action_callback}, {"SpacingHSpace", NULL, "\\_hspace", NULL, "Horizontal space - \\hspace", (GCallback) _latex_menu_on_spacing_hspace_gtk_action_callback}, {"SpacingVSpace", NULL, "\\_vspace", NULL, "Vertical space - \\vspace", (GCallback) _latex_menu_on_spacing_vspace_gtk_action_callback}, {"SpacingNoIndent", NULL, "\\_noindent", NULL, "No paragraph indentation - \\noindent", (GCallback) _latex_menu_on_spacing_noindent_gtk_action_callback}, {"Accents", NULL, "International _Accents"}, {"Accent0", "accent0", "\\'", NULL, "Acute accent - \\'", (GCallback) _latex_menu_on_accent0_gtk_action_callback}, {"Accent1", "accent1", "\\`", NULL, "Grave accent - \\`", (GCallback) _latex_menu_on_accent1_gtk_action_callback}, {"Accent2", "accent2", "\\^", NULL, "Circumflex a
 ccent - \\^", (GCallback) _latex_menu_on_accent2_gtk_action_callback}, {"Accent3", "accent3", "\\\"", NULL, "Trema - \\\"", (GCallback) _latex_menu_on_accent3_gtk_action_callback}, {"Accent4", "accent4", "\\~", NULL, "Tilde - \\~", (GCallback) _latex_menu_on_accent4_gtk_action_callback}, {"Accent5", "accent5", "\\=", NULL, "Macron - \\=", (GCallback) _latex_menu_on_accent5_gtk_action_callback}, {"Accent6", "accent6", "\\.", NULL, "Dot - \\.", (GCallback) _latex_menu_on_accent6_gtk_action_callback}, {"Accent7", "accent7", "\\v", NULL, "Caron - \\v", (GCallback) _latex_menu_on_accent7_gtk_action_callback}, {"Accent8", "accent8", "\\u", NULL, "Breve - \\u", (GCallback) _latex_menu_on_accent8_gtk_action_callback}, {"Accent9", "accent9", "\\H", NULL, "Double acute accent - \\H", (GCallback) _latex_menu_on_accent9_gtk_action_callback}, {"Accent10", "accent10", "\\c", NULL, NULL, (GCallback) _latex_menu_on_accent10_gtk_action_callback}, {"Accent11", "accent11", "\\k", NULL, NULL, (
 GCallback) _latex_menu_on_accent11_gtk_action_callback}, {"Accent12", "accent12", "\\d", NULL, NULL, (GCallback) _latex_menu_on_accent12_gtk_action_callback}, {"Accent13", "accent13", "\\b", NULL, NULL, (GCallback) _latex_menu_on_accent13_gtk_action_callback}, {"Accent14", "accent14", "\\r", NULL, NULL, (GCallback) _latex_menu_on_accent14_gtk_action_callback}, {"Accent15", "accent15", "\\t", NULL, NULL, (GCallback) _latex_menu_on_accent15_gtk_action_callback}, {"LatexMisc", NULL, "_Misc"}, {"LatexDocumentClass", NULL, "\\_documentclass", NULL, "Document class - \\documentclass", (GCallback) _latex_menu_on_documentclass_gtk_action_callback}, {"LatexUsepackage", NULL, "\\_usepackage", NULL, "Use package - \\usepackage", (GCallback) _latex_menu_on_usepackage_gtk_action_callback}, {"LatexAMS", NULL, "_AMS packages", NULL, "AMS packages", (GCallback) _latex_menu_on_ams_packages_gtk_action_callback}, {"LatexAuthor", NULL, "\\au_thor", NULL, "Author - \\author", (GCallback) _latex_
 menu_on_author_gtk_action_callback}, {"LatexTitle", NULL, "\\t_itle", NULL, "Title - \\title", (GCallback) _latex_menu_on_title_gtk_action_callback}, {"LatexBeginDocument", NULL, "\\begin{d_ocument}", NULL, "Content of the document - \\begin{document}", (GCallback) _latex_menu_on_begin_document_gtk_action_callback}, {"LatexMakeTitle", NULL, "\\_maketitle", NULL, "Make title - \\maketitle", (GCallback) _latex_menu_on_maketitle_gtk_action_callback}, {"LatexTableOfContents", NULL, "\\tableof_contents", NULL, "Table of contents - \\tableofcontents", (GCallback) _latex_menu_on_tableofcontents_gtk_action_callback}, {"LatexAbstract", NULL, "\\begin{abst_ract}", NULL, "Abstract - \\begin{abstract}", (GCallback) _latex_menu_on_abstract_gtk_action_callback}, {"LatexIncludeGraphics", NULL, "\\include_graphics", NULL, "Include an image (graphicx package) - \\includegraphics", (GCallback) _latex_menu_on_include_graphics_gtk_action_callback}, {"LatexInput", NULL, "\\_input", NULL, "Includ
 e a file - \\input", (GCallback) _latex_menu_on_input_gtk_action_callback}, {"Math", NULL, "_Math"}, {"MathEnvironments", NULL, "_Math Environments"}, {"MathEnvNormal", "math", "_Mathematical Environment - $...$", "<Alt><Shift>M", "Mathematical Environment - $...$", (GCallback) _latex_menu_on_math_env_normal_gtk_action_callback}, {"MathEnvCentered", "math-centered", "_Centered Formula - \\[...\\]", "<Alt><Shift>E", "Centered Formula - \\[...\\]", (GCallback) _latex_menu_on_math_env_centered_gtk_action_callback}, {"MathEnvNumbered", "math-numbered", "_Numbered Equation - \\begin{equation}", NULL, "Numbered Equation - \\begin{equation}", (GCallback) _latex_menu_on_math_env_numbered_gtk_action_callback}, {"MathEnvArray", "math-array", "_Array of Equations - \\begin{align*}", NULL, "Array of Equations - \\begin{align*}", (GCallback) _latex_menu_on_math_env_array_gtk_action_callback}, {"MathEnvNumberedArray", "math-numbered-array", "Numbered Array of _Equations - \\begin{align}",
  NULL, "Numbered Array of Equations - \\begin{align}", (GCallback) _latex_menu_on_math_env_numbered_array_gtk_action_callback}, {"MathSuperscript", "math-superscript", "_Superscript - ^{}", NULL, "Superscript - ^{}", (GCallback) _latex_menu_on_math_superscript_gtk_action_callback}, {"MathSubscript", "math-subscript", "Su_bscript - __{}", NULL, "Subscript - _{}", (GCallback) _latex_menu_on_math_subscript_gtk_action_callback}, {"MathFrac", "math-frac", "_Fraction - \\frac{}{}", "<Alt><Shift>F", "Fraction - \\frac{}{}", (GCallback) _latex_menu_on_math_frac_gtk_action_callback}, {"MathSquareRoot", "math-square-root", "Square _Root - \\sqrt{}", NULL, "Square Root - \\sqrt{}", (GCallback) _latex_menu_on_math_square_root_gtk_action_callback}, {"MathNthRoot", "math-nth-root", "_N-th Root - \\sqrt[]{}", NULL, "N-th Root - \\sqrt[]{}", (GCallback) _latex_menu_on_math_nth_root_gtk_action_callback}, {"MathFunctions", NULL, "Math _Functions"}, {"MathFuncArccos", NULL, "\\arccos", NULL, N
 ULL, (GCallback) _latex_menu_on_math_func_arccos_gtk_action_callback}, {"MathFuncArcsin", NULL, "\\arcsin", NULL, NULL, (GCallback) _latex_menu_on_math_func_arcsin_gtk_action_callback}, {"MathFuncArctan", NULL, "\\arctan", NULL, NULL, (GCallback) _latex_menu_on_math_func_arctan_gtk_action_callback}, {"MathFuncCos", NULL, "\\cos", NULL, NULL, (GCallback) _latex_menu_on_math_func_cos_gtk_action_callback}, {"MathFuncCosh", NULL, "\\cosh", NULL, NULL, (GCallback) _latex_menu_on_math_func_cosh_gtk_action_callback}, {"MathFuncCot", NULL, "\\cot", NULL, NULL, (GCallback) _latex_menu_on_math_func_cot_gtk_action_callback}, {"MathFuncCoth", NULL, "\\coth", NULL, NULL, (GCallback) _latex_menu_on_math_func_coth_gtk_action_callback}, {"MathFuncCsc", NULL, "\\csc", NULL, NULL, (GCallback) _latex_menu_on_math_func_csc_gtk_action_callback}, {"MathFuncDeg", NULL, "\\deg", NULL, NULL, (GCallback) _latex_menu_on_math_func_deg_gtk_action_callback}, {"MathFuncDet", NULL, "\\det", NULL, NULL, (GC
 allback) _latex_menu_on_math_func_det_gtk_action_callback}, {"MathFuncDim", NULL, "\\dim", NULL, NULL, (GCallback) _latex_menu_on_math_func_dim_gtk_action_callback}, {"MathFuncExp", NULL, "\\exp", NULL, NULL, (GCallback) _latex_menu_on_math_func_exp_gtk_action_callback}, {"MathFuncGcd", NULL, "\\gcd", NULL, NULL, (GCallback) _latex_menu_on_math_func_gcd_gtk_action_callback}, {"MathFuncHom", NULL, "\\hom", NULL, NULL, (GCallback) _latex_menu_on_math_func_hom_gtk_action_callback}, {"MathFuncInf", NULL, "\\inf", NULL, NULL, (GCallback) _latex_menu_on_math_func_inf_gtk_action_callback}, {"MathFuncKer", NULL, "\\ker", NULL, NULL, (GCallback) _latex_menu_on_math_func_ker_gtk_action_callback}, {"MathFuncLg", NULL, "\\lg", NULL, NULL, (GCallback) _latex_menu_on_math_func_lg_gtk_action_callback}, {"MathFuncLim", NULL, "\\lim", NULL, NULL, (GCallback) _latex_menu_on_math_func_lim_gtk_action_callback}, {"MathFuncLiminf", NULL, "\\liminf", NULL, NULL, (GCallback) _latex_menu_on_math_fun
 c_liminf_gtk_action_callback}, {"MathFuncLimsup", NULL, "\\limsup", NULL, NULL, (GCallback) _latex_menu_on_math_func_limsup_gtk_action_callback}, {"MathFuncLn", NULL, "\\ln", NULL, NULL, (GCallback) _latex_menu_on_math_func_ln_gtk_action_callback}, {"MathFuncLog", NULL, "\\log", NULL, NULL, (GCallback) _latex_menu_on_math_func_log_gtk_action_callback}, {"MathFuncMax", NULL, "\\max", NULL, NULL, (GCallback) _latex_menu_on_math_func_max_gtk_action_callback}, {"MathFuncMin", NULL, "\\min", NULL, NULL, (GCallback) _latex_menu_on_math_func_min_gtk_action_callback}, {"MathFuncSec", NULL, "\\sec", NULL, NULL, (GCallback) _latex_menu_on_math_func_sec_gtk_action_callback}, {"MathFuncSin", NULL, "\\sin", NULL, NULL, (GCallback) _latex_menu_on_math_func_sin_gtk_action_callback}, {"MathFuncSinh", NULL, "\\sinh", NULL, NULL, (GCallback) _latex_menu_on_math_func_sinh_gtk_action_callback}, {"MathFuncSup", NULL, "\\sup", NULL, NULL, (GCallback) _latex_menu_on_math_func_sup_gtk_action_callba
 ck}, {"MathFuncTan", NULL, "\\tan", NULL, NULL, (GCallback) _latex_menu_on_math_func_tan_gtk_action_callback}, {"MathFuncTanh", NULL, "\\tanh", NULL, NULL, (GCallback) _latex_menu_on_math_func_tanh_gtk_action_callback}, {"MathFontStyles", NULL, "Math Font _Styles"}, {"MathFSrm", "roman", "\\math_rm", NULL, "Roman - \\mathrm", (GCallback) _latex_menu_on_math_font_style_rm_gtk_action_callback}, {"MathFSit", "italic", "\\math_it", NULL, "Italic - \\mathit", (GCallback) _latex_menu_on_math_font_style_it_gtk_action_callback}, {"MathFSbf", "bold", "\\math_bf", NULL, "Bold - \\mathbf", (GCallback) _latex_menu_on_math_font_style_bf_gtk_action_callback}, {"MathFSsf", "sans_serif", "\\math_sf", NULL, "Sans Serif - \\mathsf", (GCallback) _latex_menu_on_math_font_style_sf_gtk_action_callback}, {"MathFStt", "typewriter", "\\math_tt", NULL, "Typewriter - \\mathtt", (GCallback) _latex_menu_on_math_font_style_tt_gtk_action_callback}, {"MathFScal", "mathcal", "\\math_cal", NULL, "Calligraphi
 c - \\mathcal", (GCallback) _latex_menu_on_math_font_style_cal_gtk_action_callback}, {"MathFSbb", "blackboard", "\\_mathbb", NULL, "Blackboard (uppercase only)  - \\mathbb (amsfonts package)", (GCallback) _latex_menu_on_math_font_style_bb_gtk_action_callback}, {"MathFSfrak", "mathfrak", "\\math_frak", NULL, "Euler Fraktur - \\mathfrak (amsfonts package)", (GCallback) _latex_menu_on_math_font_style_frak_gtk_action_callback}, {"MathAccents", NULL, "Math _Accents"}, {"MathAccentAcute", "mathaccent0", "\\_acute", NULL, NULL, (GCallback) _latex_menu_on_math_accent_acute_gtk_action_callback}, {"MathAccentGrave", "mathaccent1", "\\_grave", NULL, NULL, (GCallback) _latex_menu_on_math_accent_grave_gtk_action_callback}, {"MathAccentTilde", "mathaccent2", "\\_tilde", NULL, NULL, (GCallback) _latex_menu_on_math_accent_tilde_gtk_action_callback}, {"MathAccentBar", "mathaccent3", "\\_bar", NULL, NULL, (GCallback) _latex_menu_on_math_accent_bar_gtk_action_callback}, {"MathAccentVec", "math
 accent4", "\\_vec", NULL, NULL, (GCallback) _latex_menu_on_math_accent_vec_gtk_action_callback}, {"MathAccentHat", "mathaccent5", "\\_hat", NULL, NULL, (GCallback) _latex_menu_on_math_accent_hat_gtk_action_callback}, {"MathAccentCheck", "mathaccent6", "\\_check", NULL, NULL, (GCallback) _latex_menu_on_math_accent_check_gtk_action_callback}, {"MathAccentBreve", "mathaccent7", "\\b_reve", NULL, NULL, (GCallback) _latex_menu_on_math_accent_breve_gtk_action_callback}, {"MathAccentDot", "mathaccent8", "\\_dot", NULL, NULL, (GCallback) _latex_menu_on_math_accent_dot_gtk_action_callback}, {"MathAccentDdot", "mathaccent9", "\\dd_ot", NULL, NULL, (GCallback) _latex_menu_on_math_accent_ddot_gtk_action_callback}, {"MathAccentRing", "mathaccent10", "\\_mathring", NULL, NULL, (GCallback) _latex_menu_on_math_accent_ring_gtk_action_callback}, {"MathSpaces", NULL, "Math _Spaces"}, {"MathSpaceSmall", NULL, "_Small", NULL, "Small - \\,", (GCallback) _latex_menu_on_math_space_small_gtk_action_
 callback}, {"MathSpaceMedium", NULL, "_Medium", NULL, "Medium - \\:", (GCallback) _latex_menu_on_math_space_medium_gtk_action_callback}, {"MathSpaceLarge", NULL, "_Large", NULL, "Large - \\;", (GCallback) _latex_menu_on_math_space_large_gtk_action_callback}, {"MathSpaceQuad", NULL, "\\_quad", NULL, NULL, (GCallback) _latex_menu_on_math_space_quad_gtk_action_callback}, {"MathSpaceQquad", NULL, "\\qqu_ad", NULL, NULL, (GCallback) _latex_menu_on_math_space_qquad_gtk_action_callback}, {"MathLeftDelimiters", "delimiters-left", "_Left Delimiters"}, {"MathLeftDelimiter1", NULL, "left (", NULL, NULL, (GCallback) _latex_menu_on_math_left_delimiter_1_gtk_action_callback}, {"MathLeftDelimiter2", NULL, "left [", NULL, NULL, (GCallback) _latex_menu_on_math_left_delimiter_2_gtk_action_callback}, {"MathLeftDelimiter3", NULL, "left { ", NULL, NULL, (GCallback) _latex_menu_on_math_left_delimiter_3_gtk_action_callback}, {"MathLeftDelimiter4", NULL, "left <", NULL, NULL, (GCallback) _latex_men
 u_on_math_left_delimiter_4_gtk_action_callback}, {"MathLeftDelimiter5", NULL, "left )", NULL, NULL, (GCallback) _latex_menu_on_math_left_delimiter_5_gtk_action_callback}, {"MathLeftDelimiter6", NULL, "left ]", NULL, NULL, (GCallback) _latex_menu_on_math_left_delimiter_6_gtk_action_callback}, {"MathLeftDelimiter7", NULL, "left  }", NULL, NULL, (GCallback) _latex_menu_on_math_left_delimiter_7_gtk_action_callback}, {"MathLeftDelimiter8", NULL, "left >", NULL, NULL, (GCallback) _latex_menu_on_math_left_delimiter_8_gtk_action_callback}, {"MathLeftDelimiter9", NULL, "left .", NULL, NULL, (GCallback) _latex_menu_on_math_left_delimiter_9_gtk_action_callback}, {"MathRightDelimiters", "delimiters-right", "Right _Delimiters"}, {"MathRightDelimiter1", NULL, "right )", NULL, NULL, (GCallback) _latex_menu_on_math_right_delimiter_1_gtk_action_callback}, {"MathRightDelimiter2", NULL, "right ]", NULL, NULL, (GCallback) _latex_menu_on_math_right_delimiter_2_gtk_action_callback}, {"MathRightDe
 limiter3", NULL, "right  }", NULL, NULL, (GCallback) _latex_menu_on_math_right_delimiter_3_gtk_action_callback}, {"MathRightDelimiter4", NULL, "right >", NULL, NULL, (GCallback) _latex_menu_on_math_right_delimiter_4_gtk_action_callback}, {"MathRightDelimiter5", NULL, "right (", NULL, NULL, (GCallback) _latex_menu_on_math_right_delimiter_5_gtk_action_callback}, {"MathRightDelimiter6", NULL, "right [", NULL, NULL, (GCallback) _latex_menu_on_math_right_delimiter_6_gtk_action_callback}, {"MathRightDelimiter7", NULL, "right { ", NULL, NULL, (GCallback) _latex_menu_on_math_right_delimiter_7_gtk_action_callback}, {"MathRightDelimiter8", NULL, "right <", NULL, NULL, (GCallback) _latex_menu_on_math_right_delimiter_8_gtk_action_callback}, {"MathRightDelimiter9", NULL, "right .", NULL, NULL, (GCallback) _latex_menu_on_math_right_delimiter_9_gtk_action_callback}};
 
 static void _latex_menu_on_sectioning_part_gtk_action_callback (GtkAction* action, gpointer self) {
 	latex_menu_on_sectioning_part (self);
@@ -1413,22 +1411,46 @@ static void _latex_menu_on_math_right_delimiter_9_gtk_action_callback (GtkAction
 
 LatexMenu* latex_menu_construct (GType object_type, MainWindow* main_window) {
 	LatexMenu * self = NULL;
+	const gchar* _tmp0_ = NULL;
+	GtkAction* _tmp1_ = NULL;
 	GtkAction* sectioning;
+	const gchar* _tmp2_ = NULL;
+	GtkAction* _tmp3_ = NULL;
 	GtkAction* sizes;
+	const gchar* _tmp4_ = NULL;
+	GtkAction* _tmp5_ = NULL;
 	GtkAction* references;
+	const gchar* _tmp6_ = NULL;
+	GtkAction* _tmp7_ = NULL;
 	GtkAction* math_env;
+	const gchar* _tmp8_ = NULL;
+	GtkAction* _tmp9_ = NULL;
 	GtkAction* math_left_del;
+	const gchar* _tmp10_ = NULL;
+	GtkAction* _tmp11_ = NULL;
 	GtkAction* math_right_del;
 	g_return_val_if_fail (main_window != NULL, NULL);
 	self = (LatexMenu*) g_object_new (object_type, "name", "LatexActionGroup", NULL);
 	gtk_action_group_set_translation_domain ((GtkActionGroup*) self, GETTEXT_PACKAGE);
 	self->priv->main_window = main_window;
-	sectioning = latex_menu_get_menu_tool_action (self, "SectioningToolItem", _ ("Sectioning"), "sectioning-section");
-	sizes = latex_menu_get_menu_tool_action (self, "CharacterSizeToolItem", _ ("Characters Sizes"), "character-size");
-	references = latex_menu_get_menu_tool_action (self, "ReferencesToolItem", _ ("References"), "references");
-	math_env = latex_menu_get_menu_tool_action (self, "MathEnvironmentsToolItem", _ ("Math Environments"), "math");
-	math_left_del = latex_menu_get_menu_tool_action (self, "MathLeftDelimitersToolItem", _ ("Left Delimiters"), "delimiters-left");
-	math_right_del = latex_menu_get_menu_tool_action (self, "MathRightDelimitersToolItem", _ ("Right Delimiters"), "delimiters-right");
+	_tmp0_ = _ ("Sectioning");
+	_tmp1_ = latex_menu_get_menu_tool_action (self, "SectioningToolItem", _tmp0_, "sectioning-section");
+	sectioning = _tmp1_;
+	_tmp2_ = _ ("Characters Sizes");
+	_tmp3_ = latex_menu_get_menu_tool_action (self, "CharacterSizeToolItem", _tmp2_, "character-size");
+	sizes = _tmp3_;
+	_tmp4_ = _ ("References");
+	_tmp5_ = latex_menu_get_menu_tool_action (self, "ReferencesToolItem", _tmp4_, "references");
+	references = _tmp5_;
+	_tmp6_ = _ ("Math Environments");
+	_tmp7_ = latex_menu_get_menu_tool_action (self, "MathEnvironmentsToolItem", _tmp6_, "math");
+	math_env = _tmp7_;
+	_tmp8_ = _ ("Left Delimiters");
+	_tmp9_ = latex_menu_get_menu_tool_action (self, "MathLeftDelimitersToolItem", _tmp8_, "delimiters-left");
+	math_left_del = _tmp9_;
+	_tmp10_ = _ ("Right Delimiters");
+	_tmp11_ = latex_menu_get_menu_tool_action (self, "MathRightDelimitersToolItem", _tmp10_, "delimiters-right");
+	math_right_del = _tmp11_;
 	gtk_action_group_add_actions ((GtkActionGroup*) self, LATEX_MENU_latex_action_entries, G_N_ELEMENTS (LATEX_MENU_latex_action_entries), self);
 	gtk_action_group_add_action ((GtkActionGroup*) self, sectioning);
 	gtk_action_group_add_action ((GtkActionGroup*) self, sizes);
@@ -1451,14 +1473,18 @@ LatexMenu* latex_menu_new (MainWindow* main_window) {
 }
 
 
-static GtkAction* latex_menu_get_menu_tool_action (LatexMenu* self, const char* name, const char* label, const char* stock_id) {
+static GtkAction* latex_menu_get_menu_tool_action (LatexMenu* self, const gchar* name, const gchar* label, const gchar* stock_id) {
 	GtkAction* result = NULL;
+	MenuToolAction* _tmp0_ = NULL;
 	GtkAction* action;
+	GtkMenuToolButton* _tmp1_ = NULL;
 	GtkActivatable* menu_tool_button;
 	g_return_val_if_fail (self != NULL, NULL);
 	g_return_val_if_fail (name != NULL, NULL);
-	action = (GtkAction*) menu_tool_action_new (name, label, label, stock_id);
-	menu_tool_button = GTK_ACTIVATABLE (g_object_ref_sink ((GtkMenuToolButton*) gtk_menu_tool_button_new (NULL, NULL)));
+	_tmp0_ = menu_tool_action_new (name, label, label, stock_id);
+	action = (GtkAction*) _tmp0_;
+	_tmp1_ = (GtkMenuToolButton*) gtk_menu_tool_button_new (NULL, NULL);
+	menu_tool_button = GTK_ACTIVATABLE (g_object_ref_sink (_tmp1_));
 	gtk_activatable_set_related_action (menu_tool_button, action);
 	result = action;
 	_g_object_unref0 (menu_tool_button);
@@ -1471,60 +1497,68 @@ static gpointer _g_object_ref0 (gpointer self) {
 }
 
 
-static gboolean string_contains (const char* self, const char* needle) {
+static gboolean string_contains (const gchar* self, const gchar* needle) {
 	gboolean result = FALSE;
+	gchar* _tmp0_ = NULL;
 	g_return_val_if_fail (self != NULL, FALSE);
 	g_return_val_if_fail (needle != NULL, FALSE);
-	result = strstr (self, needle) != NULL;
+	_tmp0_ = strstr ((gchar*) self, (gchar*) needle);
+	result = _tmp0_ != NULL;
 	return result;
 }
 
 
-static char* string_replace (const char* self, const char* old, const char* replacement) {
-	char* result = NULL;
+static gchar* string_replace (const gchar* self, const gchar* old, const gchar* replacement) {
+	gchar* result = NULL;
+	gchar* _tmp0_ = NULL;
+	gchar* _tmp1_;
+	GRegex* _tmp2_ = NULL;
+	GRegex* _tmp3_;
+	GRegex* regex;
+	gchar* _tmp4_ = NULL;
+	gchar* _tmp5_;
 	GError * _inner_error_ = NULL;
 	g_return_val_if_fail (self != NULL, NULL);
 	g_return_val_if_fail (old != NULL, NULL);
 	g_return_val_if_fail (replacement != NULL, NULL);
-	{
-		char* _tmp0_;
-		GRegex* _tmp1_;
-		GRegex* regex;
-		char* _tmp2_;
-		regex = (_tmp1_ = g_regex_new (_tmp0_ = g_regex_escape_string (old, -1), 0, 0, &_inner_error_), _g_free0 (_tmp0_), _tmp1_);
-		if (_inner_error_ != NULL) {
-			if (_inner_error_->domain == G_REGEX_ERROR) {
-				goto __catch38_g_regex_error;
-			}
-			g_critical ("file %s: line %d: unexpected error: %s (%s, %d)", __FILE__, __LINE__, _inner_error_->message, g_quark_to_string (_inner_error_->domain), _inner_error_->code);
-			g_clear_error (&_inner_error_);
-			return NULL;
+	_tmp0_ = g_regex_escape_string (old, -1);
+	_tmp1_ = _tmp0_;
+	_tmp2_ = g_regex_new (_tmp1_, 0, 0, &_inner_error_);
+	_tmp3_ = _tmp2_;
+	_g_free0 (_tmp1_);
+	regex = _tmp3_;
+	if (_inner_error_ != NULL) {
+		if (_inner_error_->domain == G_REGEX_ERROR) {
+			goto __catch38_g_regex_error;
 		}
-		_tmp2_ = g_regex_replace_literal (regex, self, (gssize) (-1), 0, replacement, 0, &_inner_error_);
-		if (_inner_error_ != NULL) {
-			_g_regex_unref0 (regex);
-			if (_inner_error_->domain == G_REGEX_ERROR) {
-				goto __catch38_g_regex_error;
-			}
-			_g_regex_unref0 (regex);
-			g_critical ("file %s: line %d: unexpected error: %s (%s, %d)", __FILE__, __LINE__, _inner_error_->message, g_quark_to_string (_inner_error_->domain), _inner_error_->code);
-			g_clear_error (&_inner_error_);
-			return NULL;
+		g_critical ("file %s: line %d: unexpected error: %s (%s, %d)", __FILE__, __LINE__, _inner_error_->message, g_quark_to_string (_inner_error_->domain), _inner_error_->code);
+		g_clear_error (&_inner_error_);
+		return NULL;
+	}
+	_tmp4_ = g_regex_replace_literal (regex, self, (gssize) (-1), 0, replacement, 0, &_inner_error_);
+	_tmp5_ = _tmp4_;
+	if (_inner_error_ != NULL) {
+		_g_regex_unref0 (regex);
+		if (_inner_error_->domain == G_REGEX_ERROR) {
+			goto __catch38_g_regex_error;
 		}
-		result = _tmp2_;
 		_g_regex_unref0 (regex);
-		return result;
+		g_critical ("file %s: line %d: unexpected error: %s (%s, %d)", __FILE__, __LINE__, _inner_error_->message, g_quark_to_string (_inner_error_->domain), _inner_error_->code);
+		g_clear_error (&_inner_error_);
+		return NULL;
 	}
+	result = _tmp5_;
+	_g_regex_unref0 (regex);
+	return result;
+	_g_regex_unref0 (regex);
 	goto __finally38;
 	__catch38_g_regex_error:
 	{
 		GError * e;
 		e = _inner_error_;
 		_inner_error_ = NULL;
-		{
-			g_assert_not_reached ();
-			_g_error_free0 (e);
-		}
+		g_assert_not_reached ();
+		_g_error_free0 (e);
 	}
 	__finally38:
 	if (_inner_error_ != NULL) {
@@ -1535,101 +1569,169 @@ static char* string_replace (const char* self, const char* old, const char* repl
 }
 
 
-static const char* string_to_string (const char* self) {
-	const char* result = NULL;
+static const gchar* string_to_string (const gchar* self) {
+	const gchar* result = NULL;
 	g_return_val_if_fail (self != NULL, NULL);
 	result = self;
 	return result;
 }
 
 
-static void latex_menu_text_buffer_insert (LatexMenu* self, const char* text_before, const char* text_after, const char* text_if_no_selection) {
+static void latex_menu_text_buffer_insert (LatexMenu* self, const gchar* text_before, const gchar* text_after, const gchar* text_if_no_selection) {
+	DocumentTab* _tmp0_ = NULL;
+	Document* _tmp1_ = NULL;
+	Document* _tmp2_;
 	Document* active_document;
 	GtkTextIter start = {0};
 	GtkTextIter end = {0};
+	GtkTextIter _tmp3_ = {0};
+	GtkTextIter _tmp4_ = {0};
+	gboolean _tmp5_;
 	gboolean text_selected;
-	char* text_before2;
-	char* text_after2;
-	gboolean _tmp0_ = FALSE;
+	gchar* text_before2;
+	gchar* text_after2;
+	gboolean _tmp6_ = FALSE;
+	gboolean _tmp7_;
 	g_return_if_fail (self != NULL);
 	g_return_if_fail (text_before != NULL);
 	g_return_if_fail (text_after != NULL);
-	g_return_if_fail (main_window_get_active_tab (self->priv->main_window) != NULL);
-	active_document = _g_object_ref0 (main_window_get_active_document (self->priv->main_window));
-	text_selected = gtk_text_buffer_get_selection_bounds ((GtkTextBuffer*) active_document, &start, &end);
+	_tmp0_ = main_window_get_active_tab (self->priv->main_window);
+	g_return_if_fail (_tmp0_ != NULL);
+	_tmp1_ = main_window_get_active_document (self->priv->main_window);
+	_tmp2_ = _g_object_ref0 (_tmp1_);
+	active_document = _tmp2_;
+	_tmp5_ = gtk_text_buffer_get_selection_bounds ((GtkTextBuffer*) active_document, &_tmp3_, &_tmp4_);
+	start = _tmp3_;
+	end = _tmp4_;
+	text_selected = _tmp5_;
 	text_before2 = NULL;
 	text_after2 = NULL;
-	if (string_contains (text_before, "\n")) {
-		_tmp0_ = TRUE;
+	_tmp7_ = string_contains (text_before, "\n");
+	if (_tmp7_) {
+		_tmp6_ = TRUE;
 	} else {
-		_tmp0_ = string_contains (text_after, "\n");
+		gboolean _tmp8_;
+		_tmp8_ = string_contains (text_after, "\n");
+		_tmp6_ = _tmp8_;
 	}
-	if (_tmp0_) {
-		char* current_indent;
-		current_indent = document_get_current_indentation (active_document, gtk_text_iter_get_line (&start));
-		if (_vala_strcmp0 (current_indent, "") != 0) {
-			char* _tmp1_;
-			char* _tmp2_;
-			char* _tmp3_;
-			char* _tmp4_;
-			text_before2 = (_tmp2_ = string_replace (text_before, "\n", _tmp1_ = g_strconcat ("\n", string_to_string (current_indent), NULL)), _g_free0 (text_before2), _tmp2_);
-			_g_free0 (_tmp1_);
-			text_after2 = (_tmp4_ = string_replace (text_after, "\n", _tmp3_ = g_strconcat ("\n", string_to_string (current_indent), NULL)), _g_free0 (text_after2), _tmp4_);
-			_g_free0 (_tmp3_);
+	if (_tmp6_) {
+		gint _tmp9_;
+		gchar* _tmp10_ = NULL;
+		gchar* current_indent;
+		_tmp9_ = gtk_text_iter_get_line (&start);
+		_tmp10_ = document_get_current_indentation (active_document, _tmp9_);
+		current_indent = _tmp10_;
+		if (g_strcmp0 (current_indent, "") != 0) {
+			const gchar* _tmp11_ = NULL;
+			gchar* _tmp12_ = NULL;
+			gchar* _tmp13_;
+			gchar* _tmp14_ = NULL;
+			const gchar* _tmp15_ = NULL;
+			gchar* _tmp16_ = NULL;
+			gchar* _tmp17_;
+			gchar* _tmp18_ = NULL;
+			_tmp11_ = string_to_string (current_indent);
+			_tmp12_ = g_strconcat ("\n", _tmp11_, NULL);
+			_tmp13_ = _tmp12_;
+			_tmp14_ = string_replace (text_before, "\n", _tmp13_);
+			_g_free0 (text_before2);
+			text_before2 = _tmp14_;
+			_g_free0 (_tmp13_);
+			_tmp15_ = string_to_string (current_indent);
+			_tmp16_ = g_strconcat ("\n", _tmp15_, NULL);
+			_tmp17_ = _tmp16_;
+			_tmp18_ = string_replace (text_after, "\n", _tmp17_);
+			_g_free0 (text_after2);
+			text_after2 = _tmp18_;
+			_g_free0 (_tmp17_);
 		}
 		_g_free0 (current_indent);
 	}
 	gtk_text_buffer_begin_user_action ((GtkTextBuffer*) active_document);
 	if (text_selected) {
+		GtkTextMark* _tmp19_ = NULL;
+		GtkTextMark* _tmp20_;
 		GtkTextMark* mark_end;
-		char* _tmp5_;
-		char* _tmp7_;
-		mark_end = _g_object_ref0 (gtk_text_buffer_create_mark ((GtkTextBuffer*) active_document, NULL, &end, FALSE));
-		_tmp5_ = g_strdup (text_before2);
-		if (_tmp5_ == NULL) {
-			char* _tmp6_;
-			_tmp5_ = (_tmp6_ = g_strdup (text_before), _g_free0 (_tmp5_), _tmp6_);
+		gchar* _tmp21_;
+		gchar* _tmp22_;
+		GtkTextIter _tmp24_ = {0};
+		gchar* _tmp25_;
+		gchar* _tmp26_;
+		GtkTextIter _tmp28_ = {0};
+		_tmp19_ = gtk_text_buffer_create_mark ((GtkTextBuffer*) active_document, NULL, &end, FALSE);
+		_tmp20_ = _g_object_ref0 (_tmp19_);
+		mark_end = _tmp20_;
+		_tmp21_ = g_strdup (text_before2);
+		_tmp22_ = _tmp21_;
+		if (_tmp22_ == NULL) {
+			gchar* _tmp23_;
+			_tmp23_ = g_strdup (text_before);
+			_g_free0 (_tmp22_);
+			_tmp22_ = _tmp23_;
 		}
-		document_insert (active_document, &start, _tmp5_, -1);
-		gtk_text_buffer_get_iter_at_mark ((GtkTextBuffer*) active_document, &end, mark_end);
-		_tmp7_ = g_strdup (text_after2);
-		if (_tmp7_ == NULL) {
-			char* _tmp8_;
-			_tmp7_ = (_tmp8_ = g_strdup (text_after), _g_free0 (_tmp7_), _tmp8_);
+		document_insert (active_document, &start, _tmp22_, -1);
+		gtk_text_buffer_get_iter_at_mark ((GtkTextBuffer*) active_document, &_tmp24_, mark_end);
+		end = _tmp24_;
+		_tmp25_ = g_strdup (text_after2);
+		_tmp26_ = _tmp25_;
+		if (_tmp26_ == NULL) {
+			gchar* _tmp27_;
+			_tmp27_ = g_strdup (text_after);
+			_g_free0 (_tmp26_);
+			_tmp26_ = _tmp27_;
 		}
-		document_insert (active_document, &end, _tmp7_, -1);
-		gtk_text_buffer_get_iter_at_mark ((GtkTextBuffer*) active_document, &end, mark_end);
+		document_insert (active_document, &end, _tmp26_, -1);
+		gtk_text_buffer_get_iter_at_mark ((GtkTextBuffer*) active_document, &_tmp28_, mark_end);
+		end = _tmp28_;
 		gtk_text_buffer_select_range ((GtkTextBuffer*) active_document, &end, &end);
-		_g_free0 (_tmp7_);
-		_g_free0 (_tmp5_);
+		_g_free0 (_tmp26_);
+		_g_free0 (_tmp22_);
 		_g_object_unref0 (mark_end);
 	} else {
 		if (text_if_no_selection != NULL) {
 			gtk_text_buffer_insert_at_cursor ((GtkTextBuffer*) active_document, text_if_no_selection, -1);
 		} else {
-			char* _tmp9_;
+			gchar* _tmp29_;
+			gchar* _tmp30_;
 			GtkTextIter between = {0};
+			GtkTextMark* _tmp32_ = NULL;
+			GtkTextIter _tmp33_ = {0};
+			GtkTextMark* _tmp34_ = NULL;
+			GtkTextMark* _tmp35_;
 			GtkTextMark* mark;
-			char* _tmp11_;
-			_tmp9_ = g_strdup (text_before2);
-			if (_tmp9_ == NULL) {
-				char* _tmp10_;
-				_tmp9_ = (_tmp10_ = g_strdup (text_before), _g_free0 (_tmp9_), _tmp10_);
+			gchar* _tmp36_;
+			gchar* _tmp37_;
+			GtkTextIter _tmp39_ = {0};
+			_tmp29_ = g_strdup (text_before2);
+			_tmp30_ = _tmp29_;
+			if (_tmp30_ == NULL) {
+				gchar* _tmp31_;
+				_tmp31_ = g_strdup (text_before);
+				_g_free0 (_tmp30_);
+				_tmp30_ = _tmp31_;
 			}
-			gtk_text_buffer_insert_at_cursor ((GtkTextBuffer*) active_document, _tmp9_, -1);
-			gtk_text_buffer_get_iter_at_mark ((GtkTextBuffer*) active_document, &between, gtk_text_buffer_get_insert ((GtkTextBuffer*) active_document));
-			mark = _g_object_ref0 (gtk_text_buffer_create_mark ((GtkTextBuffer*) active_document, NULL, &between, TRUE));
-			_tmp11_ = g_strdup (text_after2);
-			if (_tmp11_ == NULL) {
-				char* _tmp12_;
-				_tmp11_ = (_tmp12_ = g_strdup (text_after), _g_free0 (_tmp11_), _tmp12_);
+			gtk_text_buffer_insert_at_cursor ((GtkTextBuffer*) active_document, _tmp30_, -1);
+			_tmp32_ = gtk_text_buffer_get_insert ((GtkTextBuffer*) active_document);
+			gtk_text_buffer_get_iter_at_mark ((GtkTextBuffer*) active_document, &_tmp33_, _tmp32_);
+			between = _tmp33_;
+			_tmp34_ = gtk_text_buffer_create_mark ((GtkTextBuffer*) active_document, NULL, &between, TRUE);
+			_tmp35_ = _g_object_ref0 (_tmp34_);
+			mark = _tmp35_;
+			_tmp36_ = g_strdup (text_after2);
+			_tmp37_ = _tmp36_;
+			if (_tmp37_ == NULL) {
+				gchar* _tmp38_;
+				_tmp38_ = g_strdup (text_after);
+				_g_free0 (_tmp37_);
+				_tmp37_ = _tmp38_;
 			}
-			gtk_text_buffer_insert_at_cursor ((GtkTextBuffer*) active_document, _tmp11_, -1);
-			gtk_text_buffer_get_iter_at_mark ((GtkTextBuffer*) active_document, &between, mark);
+			gtk_text_buffer_insert_at_cursor ((GtkTextBuffer*) active_document, _tmp37_, -1);
+			gtk_text_buffer_get_iter_at_mark ((GtkTextBuffer*) active_document, &_tmp39_, mark);
+			between = _tmp39_;
 			gtk_text_buffer_select_range ((GtkTextBuffer*) active_document, &between, &between);
-			_g_free0 (_tmp11_);
+			_g_free0 (_tmp37_);
 			_g_object_unref0 (mark);
-			_g_free0 (_tmp9_);
+			_g_free0 (_tmp30_);
 		}
 	}
 	gtk_text_buffer_end_user_action ((GtkTextBuffer*) active_document);
@@ -1639,30 +1741,60 @@ static void latex_menu_text_buffer_insert (LatexMenu* self, const char* text_bef
 }
 
 
-static char* latex_menu_get_indentation (LatexMenu* self) {
-	char* result = NULL;
+static gchar* latex_menu_get_indentation (LatexMenu* self) {
+	gchar* result = NULL;
+	DocumentView* _tmp0_ = NULL;
+	gchar* _tmp1_ = NULL;
 	g_return_val_if_fail (self != NULL, NULL);
-	result = document_view_get_indentation_style (main_window_get_active_view (self->priv->main_window));
+	_tmp0_ = main_window_get_active_view (self->priv->main_window);
+	_tmp1_ = document_view_get_indentation_style (_tmp0_);
+	result = _tmp1_;
 	return result;
 }
 
 
-static void latex_menu_insert_character_style (LatexMenu* self, const char* style) {
+static void latex_menu_insert_character_style (LatexMenu* self, const gchar* style) {
+	DocumentTab* _tmp0_ = NULL;
+	Document* _tmp1_ = NULL;
+	SelectionType _tmp2_;
 	g_return_if_fail (self != NULL);
 	g_return_if_fail (style != NULL);
-	g_return_if_fail (main_window_get_active_tab (self->priv->main_window) != NULL);
-	if (document_get_selection_type (main_window_get_active_document (self->priv->main_window)) == SELECTION_TYPE_MULTIPLE_LINES) {
-		char* _tmp0_;
-		char* _tmp1_;
-		latex_menu_text_buffer_insert (self, _tmp0_ = g_strconcat ("\\begin{", string_to_string (style), "}\n", NULL), _tmp1_ = g_strconcat ("\n\\end{", string_to_string (style), "}", NULL), NULL);
-		_g_free0 (_tmp1_);
-		_g_free0 (_tmp0_);
+	_tmp0_ = main_window_get_active_tab (self->priv->main_window);
+	g_return_if_fail (_tmp0_ != NULL);
+	_tmp1_ = main_window_get_active_document (self->priv->main_window);
+	_tmp2_ = document_get_selection_type (_tmp1_);
+	if (_tmp2_ == SELECTION_TYPE_MULTIPLE_LINES) {
+		const gchar* _tmp3_ = NULL;
+		gchar* _tmp4_ = NULL;
+		gchar* _tmp5_;
+		const gchar* _tmp6_ = NULL;
+		gchar* _tmp7_ = NULL;
+		gchar* _tmp8_;
+		_tmp3_ = string_to_string (style);
+		_tmp4_ = g_strconcat ("\\begin{", _tmp3_, "}\n", NULL);
+		_tmp5_ = _tmp4_;
+		_tmp6_ = string_to_string (style);
+		_tmp7_ = g_strconcat ("\n\\end{", _tmp6_, "}", NULL);
+		_tmp8_ = _tmp7_;
+		latex_menu_text_buffer_insert (self, _tmp5_, _tmp8_, NULL);
+		_g_free0 (_tmp8_);
+		_g_free0 (_tmp5_);
 	} else {
-		char* _tmp2_;
-		char* _tmp3_;
-		latex_menu_text_buffer_insert (self, _tmp2_ = g_strconcat ("{\\", string_to_string (style), " ", NULL), "}", _tmp3_ = g_strconcat ("\\", string_to_string (style), " ", NULL));
-		_g_free0 (_tmp3_);
-		_g_free0 (_tmp2_);
+		const gchar* _tmp9_ = NULL;
+		gchar* _tmp10_ = NULL;
+		gchar* _tmp11_;
+		const gchar* _tmp12_ = NULL;
+		gchar* _tmp13_ = NULL;
+		gchar* _tmp14_;
+		_tmp9_ = string_to_string (style);
+		_tmp10_ = g_strconcat ("{\\", _tmp9_, " ", NULL);
+		_tmp11_ = _tmp10_;
+		_tmp12_ = string_to_string (style);
+		_tmp13_ = g_strconcat ("\\", _tmp12_, " ", NULL);
+		_tmp14_ = _tmp13_;
+		latex_menu_text_buffer_insert (self, _tmp11_, "}", _tmp14_);
+		_g_free0 (_tmp14_);
+		_g_free0 (_tmp11_);
 	}
 }
 
@@ -1812,45 +1944,73 @@ void latex_menu_on_env_titlepage (LatexMenu* self) {
 
 
 void latex_menu_on_list_env_itemize (LatexMenu* self) {
-	char* indent;
-	char* _tmp0_;
-	g_return_if_fail (self != NULL);
-	indent = latex_menu_get_indentation (self);
-	latex_menu_text_buffer_insert (self, _tmp0_ = g_strconcat ("\\begin{itemize}\n", string_to_string (indent), "\\item ", NULL), "\n\\end{itemize}", NULL);
-	_g_free0 (_tmp0_);
+	gchar* _tmp0_ = NULL;
+	gchar* indent;
+	const gchar* _tmp1_ = NULL;
+	gchar* _tmp2_ = NULL;
+	gchar* _tmp3_;
+	g_return_if_fail (self != NULL);
+	_tmp0_ = latex_menu_get_indentation (self);
+	indent = _tmp0_;
+	_tmp1_ = string_to_string (indent);
+	_tmp2_ = g_strconcat ("\\begin{itemize}\n", _tmp1_, "\\item ", NULL);
+	_tmp3_ = _tmp2_;
+	latex_menu_text_buffer_insert (self, _tmp3_, "\n\\end{itemize}", NULL);
+	_g_free0 (_tmp3_);
 	_g_free0 (indent);
 }
 
 
 void latex_menu_on_list_env_enumerate (LatexMenu* self) {
-	char* indent;
-	char* _tmp0_;
-	g_return_if_fail (self != NULL);
-	indent = latex_menu_get_indentation (self);
-	latex_menu_text_buffer_insert (self, _tmp0_ = g_strconcat ("\\begin{enumerate}\n", string_to_string (indent), "\\item ", NULL), "\n\\end{enumerate}", NULL);
-	_g_free0 (_tmp0_);
+	gchar* _tmp0_ = NULL;
+	gchar* indent;
+	const gchar* _tmp1_ = NULL;
+	gchar* _tmp2_ = NULL;
+	gchar* _tmp3_;
+	g_return_if_fail (self != NULL);
+	_tmp0_ = latex_menu_get_indentation (self);
+	indent = _tmp0_;
+	_tmp1_ = string_to_string (indent);
+	_tmp2_ = g_strconcat ("\\begin{enumerate}\n", _tmp1_, "\\item ", NULL);
+	_tmp3_ = _tmp2_;
+	latex_menu_text_buffer_insert (self, _tmp3_, "\n\\end{enumerate}", NULL);
+	_g_free0 (_tmp3_);
 	_g_free0 (indent);
 }
 
 
 void latex_menu_on_list_env_description (LatexMenu* self) {
-	char* indent;
-	char* _tmp0_;
-	g_return_if_fail (self != NULL);
-	indent = latex_menu_get_indentation (self);
-	latex_menu_text_buffer_insert (self, _tmp0_ = g_strconcat ("\\begin{description}\n", string_to_string (indent), "\\item[", NULL), "] \n\\end{description}", NULL);
-	_g_free0 (_tmp0_);
+	gchar* _tmp0_ = NULL;
+	gchar* indent;
+	const gchar* _tmp1_ = NULL;
+	gchar* _tmp2_ = NULL;
+	gchar* _tmp3_;
+	g_return_if_fail (self != NULL);
+	_tmp0_ = latex_menu_get_indentation (self);
+	indent = _tmp0_;
+	_tmp1_ = string_to_string (indent);
+	_tmp2_ = g_strconcat ("\\begin{description}\n", _tmp1_, "\\item[", NULL);
+	_tmp3_ = _tmp2_;
+	latex_menu_text_buffer_insert (self, _tmp3_, "] \n\\end{description}", NULL);
+	_g_free0 (_tmp3_);
 	_g_free0 (indent);
 }
 
 
 void latex_menu_on_list_env_list (LatexMenu* self) {
-	char* indent;
-	char* _tmp0_;
-	g_return_if_fail (self != NULL);
-	indent = latex_menu_get_indentation (self);
-	latex_menu_text_buffer_insert (self, "\\begin{list}{", _tmp0_ = g_strconcat ("}{}\n", string_to_string (indent), "\\item \n\\end{list}", NULL), NULL);
-	_g_free0 (_tmp0_);
+	gchar* _tmp0_ = NULL;
+	gchar* indent;
+	const gchar* _tmp1_ = NULL;
+	gchar* _tmp2_ = NULL;
+	gchar* _tmp3_;
+	g_return_if_fail (self != NULL);
+	_tmp0_ = latex_menu_get_indentation (self);
+	indent = _tmp0_;
+	_tmp1_ = string_to_string (indent);
+	_tmp2_ = g_strconcat ("}{}\n", _tmp1_, "\\item \n\\end{list}", NULL);
+	_tmp3_ = _tmp2_;
+	latex_menu_text_buffer_insert (self, "\\begin{list}{", _tmp3_, NULL);
+	_g_free0 (_tmp3_);
 	_g_free0 (indent);
 }
 
@@ -2222,9 +2382,11 @@ void latex_menu_on_usepackage (LatexMenu* self) {
 
 
 void latex_menu_on_ams_packages (LatexMenu* self) {
-	char* packages;
+	gchar* _tmp0_;
+	gchar* packages;
 	g_return_if_fail (self != NULL);
-	packages = g_strdup ("\\usepackage{amsmath}\n" "\\usepackage{amsfonts}\n" "\\usepackage{amssymb}");
+	_tmp0_ = g_strdup ("\\usepackage{amsmath}\n" "\\usepackage{amsfonts}\n" "\\usepackage{amssymb}");
+	packages = _tmp0_;
 	latex_menu_text_buffer_insert (self, packages, "", NULL);
 	_g_free0 (packages);
 }
@@ -2801,16 +2963,4 @@ GType latex_menu_get_type (void) {
 }
 
 
-static int _vala_strcmp0 (const char * str1, const char * str2) {
-	if (str1 == NULL) {
-		return -(str1 != str2);
-	}
-	if (str2 == NULL) {
-		return str1 != str2;
-	}
-	return strcmp (str1, str2);
-}
-
-
-
 
diff --git a/src/C/main.c b/src/C/main.c
index 0351433..f7c3581 100644
--- a/src/C/main.c
+++ b/src/C/main.c
@@ -1,4 +1,4 @@
-/* main.c generated by valac 0.10.3, the Vala compiler
+/* main.c generated by valac 0.12.1, the Vala compiler
  * generated from main.vala, do not modify */
 
 /*
@@ -24,8 +24,8 @@
 #include <glib-object.h>
 #include <stdlib.h>
 #include <string.h>
-#include <glib/gi18n-lib.h>
 #include <config.h>
+#include <glib/gi18n-lib.h>
 #include <gtk/gtk.h>
 #include <stdio.h>
 #include <unique/unique.h>
@@ -54,30 +54,28 @@ extern gboolean option_new_document;
 gboolean option_new_document = FALSE;
 extern gboolean option_new_window;
 gboolean option_new_window = FALSE;
-extern char** remaining_args;
-char** remaining_args = NULL;
+extern gchar** remaining_args;
+gchar** remaining_args = NULL;
 extern gint application_NEW_WINDOW;
 
-gint _vala_main (char** args, int args_length1);
-static void _vala_array_add18 (char*** array, int* length, int* size, char* value);
+gint _vala_main (gchar** args, int args_length1);
+static void _vala_array_add18 (gchar*** array, int* length, int* size, gchar* value);
 GType application_get_type (void) G_GNUC_CONST;
 Application* application_get_default (void);
-void application_open_documents (Application* self, char** uris);
+void application_open_documents (Application* self, gchar** uris);
 void application_create_document (Application* self);
 UniqueResponse application_message (Application* self, UniqueApp* sender, gint command, UniqueMessageData* data, guint time);
 static UniqueResponse _application_message_unique_app_message_received (UniqueApp* _sender, gint command, UniqueMessageData* message_data, guint time_, gpointer self);
 static void _vala_array_destroy (gpointer array, gint array_length, GDestroyNotify destroy_func);
 static void _vala_array_free (gpointer array, gint array_length, GDestroyNotify destroy_func);
 static gint _vala_array_length (gpointer array);
-static int _vala_strcmp0 (const char * str1, const char * str2);
-
-const GOptionEntry options[5] = {{"version", 'V', 0, G_OPTION_ARG_NONE, &option_version, N_ ("Show the application's version"), NULL}, {"new-document", 'n', 0, G_OPTION_ARG_NONE, &option_new_document, N_ ("Create new document"), NULL}, {"new-window", '\0', 0, G_OPTION_ARG_NONE, &option_new_window, N_ ("Create a new top-level window in an existing instance of LaTeXila"), NULL}, {"", '\0', 0, G_OPTION_ARG_FILENAME_ARRAY, &remaining_args, NULL, "[FILE...]"}, {NULL}};
 
+const GOptionEntry options[5] = {{"version", 'V', 0, G_OPTION_ARG_NONE, &option_version, "Show the application's version", NULL}, {"new-document", 'n', 0, G_OPTION_ARG_NONE, &option_new_document, "Create new document", NULL}, {"new-window", '\0', 0, G_OPTION_ARG_NONE, &option_new_window, "Create a new top-level window in an existing instance of LaTeXila", NULL}, {"", '\0', 0, G_OPTION_ARG_FILENAME_ARRAY, &remaining_args, NULL, "[FILE...]"}, {NULL}};
 
-static void _vala_array_add18 (char*** array, int* length, int* size, char* value) {
+static void _vala_array_add18 (gchar*** array, int* length, int* size, gchar* value) {
 	if ((*length) == (*size)) {
 		*size = (*size) ? (2 * (*size)) : 4;
-		*array = g_renew (char*, *array, (*size) + 1);
+		*array = g_renew (gchar*, *array, (*size) + 1);
 	}
 	(*array)[(*length)++] = value;
 	(*array)[*length] = NULL;
@@ -91,17 +89,22 @@ static UniqueResponse _application_message_unique_app_message_received (UniqueAp
 }
 
 
-gint _vala_main (char** args, int args_length1) {
+gint _vala_main (gchar** args, int args_length1) {
 	gint result = 0;
 	gboolean _tmp0_ = FALSE;
+	const gchar* _tmp1_ = NULL;
+	GOptionContext* _tmp2_ = NULL;
 	GOptionContext* context;
+	GOptionGroup* _tmp3_ = NULL;
 	gboolean command_open;
+	UniqueMessageData* _tmp5_ = NULL;
 	UniqueMessageData* data;
+	UniqueApp* _tmp11_ = NULL;
 	UniqueApp* app;
-	gboolean _tmp4_;
+	gboolean _tmp12_;
 	GError * _inner_error_ = NULL;
-	if (_vala_strcmp0 (SCHEMA_DIR, "/usr/local/share") != 0) {
-		_tmp0_ = _vala_strcmp0 (SCHEMA_DIR, "/usr/share") != 0;
+	if (g_strcmp0 (SCHEMA_DIR, "/usr/local/share") != 0) {
+		_tmp0_ = g_strcmp0 (SCHEMA_DIR, "/usr/share") != 0;
 	} else {
 		_tmp0_ = FALSE;
 	}
@@ -112,35 +115,36 @@ gint _vala_main (char** args, int args_length1) {
 	bind_textdomain_codeset (GETTEXT_PACKAGE, "UTF-8");
 	textdomain (GETTEXT_PACKAGE);
 	gtk_init (&args_length1, &args);
-	context = g_option_context_new (_ ("- Integrated LaTeX Environment for GNOME"));
+	_tmp1_ = _ ("- Integrated LaTeX Environment for GNOME");
+	_tmp2_ = g_option_context_new (_tmp1_);
+	context = _tmp2_;
 	g_option_context_add_main_entries (context, options, GETTEXT_PACKAGE);
-	g_option_context_add_group (context, gtk_get_option_group (FALSE));
-	{
-		g_option_context_parse (context, &args_length1, &args, &_inner_error_);
-		if (_inner_error_ != NULL) {
-			if (_inner_error_->domain == G_OPTION_ERROR) {
-				goto __catch44_g_option_error;
-			}
-			_g_option_context_free0 (context);
-			g_critical ("file %s: line %d: unexpected error: %s (%s, %d)", __FILE__, __LINE__, _inner_error_->message, g_quark_to_string (_inner_error_->domain), _inner_error_->code);
-			g_clear_error (&_inner_error_);
-			return 0;
+	_tmp3_ = gtk_get_option_group (FALSE);
+	g_option_context_add_group (context, _tmp3_);
+	g_option_context_parse (context, &args_length1, &args, &_inner_error_);
+	if (_inner_error_ != NULL) {
+		if (_inner_error_->domain == G_OPTION_ERROR) {
+			goto __catch44_g_option_error;
 		}
+		_g_option_context_free0 (context);
+		g_critical ("file %s: line %d: unexpected error: %s (%s, %d)", __FILE__, __LINE__, _inner_error_->message, g_quark_to_string (_inner_error_->domain), _inner_error_->code);
+		g_clear_error (&_inner_error_);
+		return 0;
 	}
 	goto __finally44;
 	__catch44_g_option_error:
 	{
 		GError * e;
+		const gchar* _tmp4_ = NULL;
 		e = _inner_error_;
 		_inner_error_ = NULL;
-		{
-			fprintf (stderr, "%s\n", e->message);
-			fprintf (stderr, _ ("Run '%s --help' to see a full list of available command line options.\n"), args[0]);
-			result = 1;
-			_g_error_free0 (e);
-			_g_option_context_free0 (context);
-			return result;
-		}
+		fprintf (stderr, "%s\n", e->message);
+		_tmp4_ = _ ("Run '%s --help' to see a full list of available command line options.\n");
+		fprintf (stderr, _tmp4_, args[0]);
+		result = 1;
+		_g_error_free0 (e);
+		_g_option_context_free0 (context);
+		return result;
 	}
 	__finally44:
 	if (_inner_error_ != NULL) {
@@ -156,28 +160,38 @@ gint _vala_main (char** args, int args_length1) {
 		return result;
 	}
 	command_open = FALSE;
-	data = unique_message_data_new ();
+	_tmp5_ = unique_message_data_new ();
+	data = _tmp5_;
 	if (_vala_array_length (remaining_args) != 0) {
+		gchar** _tmp6_ = NULL;
+		gchar** uris;
 		gint uris_length1;
 		gint _uris_size_;
-		char** _tmp2_;
-		char** _tmp1_ = NULL;
-		char** uris;
 		command_open = TRUE;
-		uris = (_tmp2_ = (_tmp1_ = g_new0 (char*, 0 + 1), _tmp1_), uris_length1 = 0, _uris_size_ = uris_length1, _tmp2_);
+		_tmp6_ = g_new0 (gchar*, 0 + 1);
+		uris = _tmp6_;
+		uris_length1 = 0;
+		_uris_size_ = 0;
 		{
-			char** arg_collection;
+			gchar** arg_collection;
 			int arg_collection_length1;
 			int arg_it;
 			arg_collection = remaining_args;
 			arg_collection_length1 = _vala_array_length (remaining_args);
 			for (arg_it = 0; arg_it < _vala_array_length (remaining_args); arg_it = arg_it + 1) {
-				char* arg;
-				arg = g_strdup (arg_collection[arg_it]);
+				gchar* _tmp7_;
+				gchar* arg;
+				_tmp7_ = g_strdup (arg_collection[arg_it]);
+				arg = _tmp7_;
 				{
-					GFile* _tmp3_;
-					_vala_array_add18 (&uris, &uris_length1, &_uris_size_, g_file_get_uri (_tmp3_ = g_file_new_for_path (arg)));
-					_g_object_unref0 (_tmp3_);
+					GFile* _tmp8_ = NULL;
+					GFile* _tmp9_;
+					gchar* _tmp10_ = NULL;
+					_tmp8_ = g_file_new_for_path (arg);
+					_tmp9_ = _tmp8_;
+					_tmp10_ = g_file_get_uri (_tmp9_);
+					_vala_array_add18 (&uris, &uris_length1, &_uris_size_, _tmp10_);
+					_g_object_unref0 (_tmp9_);
 					_g_free0 (arg);
 				}
 			}
@@ -185,53 +199,63 @@ gint _vala_main (char** args, int args_length1) {
 		unique_message_data_set_uris (data, uris);
 		uris = (_vala_array_free (uris, uris_length1, (GDestroyNotify) g_free), NULL);
 	}
-	app = unique_app_new ("org.gnome.latexila", NULL);
+	_tmp11_ = unique_app_new ("org.gnome.latexila", NULL);
+	app = _tmp11_;
 	unique_app_add_command (app, "new_window", application_NEW_WINDOW);
-	if ((g_object_get (app, "is-running", &_tmp4_, NULL), _tmp4_)) {
+	g_object_get (app, "is-running", &_tmp12_, NULL);
+	if (_tmp12_) {
 		gboolean ok;
-		gboolean _tmp5_ = FALSE;
-		gboolean _tmp6_ = FALSE;
-		gboolean _tmp7_ = FALSE;
-		gboolean _tmp8_ = FALSE;
+		gboolean _tmp14_ = FALSE;
+		gboolean _tmp16_ = FALSE;
+		gboolean _tmp18_ = FALSE;
+		gboolean _tmp19_ = FALSE;
 		ok = TRUE;
 		if (option_new_window) {
+			UniqueResponse _tmp13_;
 			UniqueResponse resp;
-			resp = unique_app_send_message (app, application_NEW_WINDOW, NULL);
+			_tmp13_ = unique_app_send_message (app, application_NEW_WINDOW, NULL);
+			resp = _tmp13_;
 			ok = resp == UNIQUE_RESPONSE_OK;
 		}
 		if (ok) {
-			_tmp5_ = command_open;
+			_tmp14_ = command_open;
 		} else {
-			_tmp5_ = FALSE;
+			_tmp14_ = FALSE;
 		}
-		if (_tmp5_) {
+		if (_tmp14_) {
+			UniqueResponse _tmp15_;
 			UniqueResponse resp;
-			resp = unique_app_send_message (app, (gint) UNIQUE_OPEN, data);
+			_tmp15_ = unique_app_send_message (app, (gint) UNIQUE_OPEN, data);
+			resp = _tmp15_;
 			ok = resp == UNIQUE_RESPONSE_OK;
 		}
 		if (ok) {
-			_tmp6_ = option_new_document;
+			_tmp16_ = option_new_document;
 		} else {
-			_tmp6_ = FALSE;
+			_tmp16_ = FALSE;
 		}
-		if (_tmp6_) {
+		if (_tmp16_) {
+			UniqueResponse _tmp17_;
 			UniqueResponse resp;
-			resp = unique_app_send_message (app, (gint) UNIQUE_NEW, NULL);
+			_tmp17_ = unique_app_send_message (app, (gint) UNIQUE_NEW, NULL);
+			resp = _tmp17_;
 			ok = resp == UNIQUE_RESPONSE_OK;
 		}
 		if (!option_new_window) {
-			_tmp8_ = !command_open;
+			_tmp19_ = !command_open;
 		} else {
-			_tmp8_ = FALSE;
+			_tmp19_ = FALSE;
 		}
-		if (_tmp8_) {
-			_tmp7_ = !option_new_document;
+		if (_tmp19_) {
+			_tmp18_ = !option_new_document;
 		} else {
-			_tmp7_ = FALSE;
+			_tmp18_ = FALSE;
 		}
-		if (_tmp7_) {
+		if (_tmp18_) {
+			UniqueResponse _tmp20_;
 			UniqueResponse resp;
-			resp = unique_app_send_message (app, (gint) UNIQUE_ACTIVATE, NULL);
+			_tmp20_ = unique_app_send_message (app, (gint) UNIQUE_ACTIVATE, NULL);
+			resp = _tmp20_;
 			ok = resp == UNIQUE_RESPONSE_OK;
 		}
 		if (!ok) {
@@ -244,28 +268,43 @@ gint _vala_main (char** args, int args_length1) {
 		_g_option_context_free0 (context);
 		return result;
 	} else {
+		Application* _tmp21_ = NULL;
 		Application* latexila;
+		GSettings* _tmp22_ = NULL;
 		GSettings* editor_settings;
-		latexila = application_get_default ();
-		editor_settings = g_settings_new ("org.gnome.latexila.preferences.editor");
-		if (g_settings_get_boolean (editor_settings, "reopen-files")) {
+		gboolean _tmp23_;
+		_tmp21_ = application_get_default ();
+		latexila = _tmp21_;
+		_tmp22_ = g_settings_new ("org.gnome.latexila.preferences.editor");
+		editor_settings = _tmp22_;
+		_tmp23_ = g_settings_get_boolean (editor_settings, "reopen-files");
+		if (_tmp23_) {
+			GSettings* _tmp24_ = NULL;
 			GSettings* window_settings;
+			gchar** _tmp25_;
+			gchar** _tmp26_ = NULL;
+			gchar** uris;
 			gint uris_length1;
 			gint _uris_size_;
-			char** _tmp10_;
-			char** _tmp9_;
-			char** uris;
-			window_settings = g_settings_new ("org.gnome.latexila.state.window");
-			uris = (_tmp10_ = _tmp9_ = g_settings_get_strv (window_settings, "documents"), uris_length1 = _vala_array_length (_tmp9_), _uris_size_ = uris_length1, _tmp10_);
+			_tmp24_ = g_settings_new ("org.gnome.latexila.state.window");
+			window_settings = _tmp24_;
+			_tmp26_ = _tmp25_ = g_settings_get_strv (window_settings, "documents");
+			uris = _tmp26_;
+			uris_length1 = _vala_array_length (_tmp25_);
+			_uris_size_ = _vala_array_length (_tmp25_);
 			application_open_documents (latexila, uris);
 			uris = (_vala_array_free (uris, uris_length1, (GDestroyNotify) g_free), NULL);
 			_g_object_unref0 (window_settings);
 		}
 		if (command_open) {
-			char** _tmp11_;
-			gint _tmp11__length1;
-			application_open_documents (latexila, (_tmp11_ = unique_message_data_get_uris (data), _tmp11__length1 = -1, _tmp11_));
-			_tmp11_ = (_vala_array_free (_tmp11_, _tmp11__length1, (GDestroyNotify) g_free), NULL);
+			gchar** _tmp27_ = NULL;
+			gchar** _tmp28_;
+			gint _tmp28__length1;
+			_tmp27_ = unique_message_data_get_uris (data);
+			_tmp28_ = _tmp27_;
+			_tmp28__length1 = -1;
+			application_open_documents (latexila, _tmp28_);
+			_tmp28_ = (_vala_array_free (_tmp28_, _tmp28__length1, (GDestroyNotify) g_free), NULL);
 		}
 		if (option_new_document) {
 			application_create_document (latexila);
@@ -319,16 +358,4 @@ static gint _vala_array_length (gpointer array) {
 }
 
 
-static int _vala_strcmp0 (const char * str1, const char * str2) {
-	if (str1 == NULL) {
-		return -(str1 != str2);
-	}
-	if (str2 == NULL) {
-		return str1 != str2;
-	}
-	return strcmp (str1, str2);
-}
-
-
-
 
diff --git a/src/C/main_window.c b/src/C/main_window.c
index 71691de..bef1154 100644
--- a/src/C/main_window.c
+++ b/src/C/main_window.c
@@ -1,4 +1,4 @@
-/* main_window.c generated by valac 0.10.3, the Vala compiler
+/* main_window.c generated by valac 0.12.1, the Vala compiler
  * generated from main_window.vala, do not modify */
 
 /*
@@ -25,9 +25,9 @@
 #include <gtk/gtk.h>
 #include <stdlib.h>
 #include <string.h>
-#include <glib/gi18n-lib.h>
 #include <gio/gio.h>
 #include <gdk/gdk.h>
+#include <glib/gi18n-lib.h>
 #include <gtksourceview/gtksourceview.h>
 #include <config.h>
 #include <gee.h>
@@ -169,7 +169,7 @@ typedef struct _DocumentClass DocumentClass;
 
 typedef struct _DocumentTab DocumentTab;
 typedef struct _DocumentTabClass DocumentTabClass;
-#define __g_list_free_g_object_unref0(var) ((var == NULL) ? NULL : (var = (_g_list_free_g_object_unref (var), NULL)))
+#define __g_list_free__g_object_unref0_0(var) ((var == NULL) ? NULL : (var = (_g_list_free__g_object_unref0_ (var), NULL)))
 
 #define TYPE_DOCUMENT_VIEW (document_view_get_type ())
 #define DOCUMENT_VIEW(obj) (G_TYPE_CHECK_INSTANCE_CAST ((obj), TYPE_DOCUMENT_VIEW, DocumentView))
@@ -201,6 +201,7 @@ typedef struct _LatexMenuClass LatexMenuClass;
 
 typedef struct _Application Application;
 typedef struct _ApplicationClass ApplicationClass;
+typedef struct _Block5Data Block5Data;
 typedef struct _DocumentPrivate DocumentPrivate;
 
 #define TYPE_TAB_INFO_BAR (tab_info_bar_get_type ())
@@ -212,7 +213,6 @@ typedef struct _DocumentPrivate DocumentPrivate;
 
 typedef struct _TabInfoBar TabInfoBar;
 typedef struct _TabInfoBarClass TabInfoBarClass;
-typedef struct _Block5Data Block5Data;
 typedef struct _Block6Data Block6Data;
 #define _g_regex_unref0(var) ((var == NULL) ? NULL : (var = (g_regex_unref (var), NULL)))
 #define _g_list_free0(var) ((var == NULL) ? NULL : (var = (g_list_free (var), NULL)))
@@ -244,7 +244,7 @@ typedef struct _Block7Data Block7Data;
 
 typedef struct _Templates Templates;
 typedef struct _TemplatesClass TemplatesClass;
-#define __g_slist_free_g_object_unref0(var) ((var == NULL) ? NULL : (var = (_g_slist_free_g_object_unref (var), NULL)))
+#define __g_slist_free__g_object_unref0_0(var) ((var == NULL) ? NULL : (var = (_g_slist_free__g_object_unref0_ (var), NULL)))
 
 struct _MainWindow {
 	GtkWindow parent_instance;
@@ -256,7 +256,7 @@ struct _MainWindowClass {
 };
 
 struct _MainWindowPrivate {
-	char* file_chooser_current_folder;
+	gchar* file_chooser_current_folder;
 	DocumentsPanel* documents_panel;
 	CustomStatusbar* statusbar;
 	GotoLine* goto_line;
@@ -280,23 +280,24 @@ struct _MainWindowPrivate {
 	guint tip_message_cid;
 };
 
+struct _Block5Data {
+	int _ref_count_;
+	MainWindow * self;
+	DocumentTab* tab;
+	GtkInfoBar* infobar;
+};
+
 struct _Document {
 	GtkSourceBuffer parent_instance;
 	DocumentPrivate * priv;
 	DocumentTab* tab;
+	guint _unsaved_doc_num;
 };
 
 struct _DocumentClass {
 	GtkSourceBufferClass parent_class;
 };
 
-struct _Block5Data {
-	int _ref_count_;
-	MainWindow * self;
-	DocumentTab* tab;
-	GtkInfoBar* infobar;
-};
-
 struct _Block6Data {
 	int _ref_count_;
 	MainWindow * self;
@@ -305,17 +306,17 @@ struct _Block6Data {
 
 struct _BuildJob {
 	gboolean must_succeed;
-	char* post_processor;
-	char* command;
-	char** command_args;
+	gchar* post_processor;
+	gchar* command;
+	gchar** command_args;
 	gint command_args_length1;
 };
 
 struct _BuildTool {
-	char* description;
-	char* extensions;
-	char* label;
-	char* icon;
+	gchar* description;
+	gchar* extensions;
+	gchar* label;
+	gchar* icon;
 	gboolean compilation;
 	GList* jobs;
 };
@@ -434,8 +435,8 @@ static void main_window_initialize_menubar_and_toolbar (MainWindow* self);
 static void main_window_setup_toolbar_open_button (MainWindow* self, GtkToolbar* toolbar);
 DocumentsPanel* documents_panel_new (MainWindow* main_window);
 DocumentsPanel* documents_panel_construct (GType object_type, MainWindow* main_window);
-static void _lambda73_ (GdkEventButton* event, MainWindow* self);
-static void __lambda73__documents_panel_right_click (DocumentsPanel* _sender, GdkEventButton* event, gpointer self);
+static void _lambda76_ (GdkEventButton* event, MainWindow* self);
+static void __lambda76__documents_panel_right_click (DocumentsPanel* _sender, GdkEventButton* event, gpointer self);
 CustomStatusbar* custom_statusbar_new (void);
 CustomStatusbar* custom_statusbar_construct (GType object_type);
 GotoLine* goto_line_new (MainWindow* main_window);
@@ -448,46 +449,47 @@ SidePanel* side_panel_new (MainWindow* main_window, GtkToggleAction* action_view
 SidePanel* side_panel_construct (GType object_type, MainWindow* main_window, GtkToggleAction* action_view_side_panel);
 Symbols* symbols_new (MainWindow* main_window);
 Symbols* symbols_construct (GType object_type, MainWindow* main_window);
-void side_panel_add_component (SidePanel* self, const char* name, const char* stock_id, GtkVBox* component);
+void side_panel_add_component (SidePanel* self, const gchar* name, const gchar* stock_id, GtkVBox* component);
 FileBrowser* file_browser_new (MainWindow* main_window);
 FileBrowser* file_browser_construct (GType object_type, MainWindow* main_window);
 void side_panel_restore_state (SidePanel* self);
-static gboolean _lambda74_ (MainWindow* self);
-static gboolean __lambda74__gtk_widget_delete_event (GtkWidget* _sender, GdkEvent* event, gpointer self);
-static void _lambda75_ (MainWindow* self);
+static gboolean _lambda77_ (MainWindow* self);
+static gboolean __lambda77__gtk_widget_delete_event (GtkWidget* _sender, GdkEvent* event, gpointer self);
+static void _lambda78_ (MainWindow* self);
 static void main_window_set_file_actions_sensitivity (MainWindow* self, gboolean sensitive);
 static void main_window_set_documents_move_to_new_window_sensitivity (MainWindow* self, gboolean sensitive);
 static void main_window_update_documents_list_menu (MainWindow* self);
-static void __lambda75__gtk_notebook_page_added (GtkNotebook* _sender, GtkWidget* p0, guint p1, gpointer self);
-static void _lambda76_ (MainWindow* self);
+static void __lambda78__gtk_notebook_page_added (GtkNotebook* _sender, GtkWidget* p0, guint p1, gpointer self);
+static void _lambda79_ (MainWindow* self);
 void custom_statusbar_set_cursor_position (CustomStatusbar* self, gint line, gint col);
 void search_and_replace_hide (SearchAndReplace* self);
 static void main_window_my_set_title (MainWindow* self);
-static void __lambda76__gtk_notebook_page_removed (GtkNotebook* _sender, GtkWidget* p0, guint p1, gpointer self);
-static void _lambda77_ (GtkNotebookPage* pg, guint page_num, MainWindow* self);
+static void __lambda79__gtk_notebook_page_removed (GtkNotebook* _sender, GtkWidget* p0, guint p1, gpointer self);
+static void _lambda80_ (GtkNotebookPage* pg, guint page_num, MainWindow* self);
 static void main_window_set_undo_sensitivity (MainWindow* self);
 static void main_window_set_redo_sensitivity (MainWindow* self);
 static void main_window_update_next_prev_doc_sensitivity (MainWindow* self);
 static void main_window_update_build_tools_sensitivity (MainWindow* self);
 void main_window_update_config_project_sensitivity (MainWindow* self);
 static void main_window_update_cursor_position_statusbar (MainWindow* self);
-static void __lambda77__gtk_notebook_switch_page (GtkNotebook* _sender, GtkNotebookPage* page, guint page_num, gpointer self);
-static void _lambda78_ (MainWindow* self);
-static void __lambda78__gtk_notebook_page_reordered (GtkNotebook* _sender, GtkWidget* p0, guint p1, gpointer self);
-static void _lambda79_ (MainWindow* self);
+static void __lambda80__gtk_notebook_switch_page (GtkNotebook* _sender, GtkNotebookPage* page, guint page_num, gpointer self);
+static void _lambda81_ (MainWindow* self);
+static void __lambda81__gtk_notebook_page_reordered (GtkNotebook* _sender, GtkWidget* p0, guint p1, gpointer self);
+static void _lambda82_ (MainWindow* self);
 GType completion_provider_get_type (void) G_GNUC_CONST;
 CompletionProvider* completion_provider_get_default (void);
 void completion_provider_hide_calltip_window (CompletionProvider* self);
-static void __lambda79__g_object_notify (GObject* _sender, GParamSpec* pspec, gpointer self);
-static gboolean _lambda80_ (MainWindow* self);
-static gboolean __lambda80__gtk_widget_focus_out_event (GtkWidget* _sender, GdkEventFocus* event, gpointer self);
+static void __lambda82__g_object_notify (GObject* _sender, GParamSpec* pspec, gpointer self);
+static gboolean _lambda83_ (MainWindow* self);
+static gboolean __lambda83__gtk_widget_focus_out_event (GtkWidget* _sender, GdkEventFocus* event, gpointer self);
 GtkWidget* search_and_replace_get_widget (SearchAndReplace* self);
 static void main_window_show_or_hide_widgets (MainWindow* self);
 GType document_get_type (void) G_GNUC_CONST;
 GList* main_window_get_documents (MainWindow* self);
 GType document_tab_get_type (void) G_GNUC_CONST;
 Document* document_tab_get_document (DocumentTab* self);
-static void _g_list_free_g_object_unref (GList* self);
+static void _g_object_unref0_ (gpointer var);
+static void _g_list_free__g_object_unref0_ (GList* self);
 GList* main_window_get_unsaved_documents (MainWindow* self);
 gboolean document_get_modified (Document* self);
 GType document_view_get_type (void) G_GNUC_CONST;
@@ -497,14 +499,14 @@ static void main_window_configure_recent_chooser (MainWindow* self, GtkRecentCho
 LatexMenu* latex_menu_new (MainWindow* main_window);
 LatexMenu* latex_menu_construct (GType object_type, MainWindow* main_window);
 GType latex_menu_get_type (void) G_GNUC_CONST;
-static void _lambda70_ (GtkAction* action, GtkWidget* p, MainWindow* self);
+static void _lambda73_ (GtkAction* action, GtkWidget* p, MainWindow* self);
 static void main_window_on_menu_item_select (MainWindow* self, GtkItem* proxy);
 static void _main_window_on_menu_item_select_gtk_item_select (GtkItem* _sender, gpointer self);
 static void main_window_on_menu_item_deselect (MainWindow* self, GtkItem* proxy);
 static void _main_window_on_menu_item_deselect_gtk_item_deselect (GtkItem* _sender, gpointer self);
-static void __lambda70__gtk_ui_manager_connect_proxy (GtkUIManager* _sender, GtkAction* action, GtkWidget* proxy, gpointer self);
-static void _lambda71_ (GtkAction* action, GtkWidget* p, MainWindow* self);
-static void __lambda71__gtk_ui_manager_disconnect_proxy (GtkUIManager* _sender, GtkAction* action, GtkWidget* proxy, gpointer self);
+static void __lambda73__gtk_ui_manager_connect_proxy (GtkUIManager* _sender, GtkAction* action, GtkWidget* proxy, gpointer self);
+static void _lambda74_ (GtkAction* action, GtkWidget* p, MainWindow* self);
+static void __lambda74__gtk_ui_manager_disconnect_proxy (GtkUIManager* _sender, GtkAction* action, GtkWidget* proxy, gpointer self);
 void main_window_update_build_tools_menu (MainWindow* self);
 BuildView* main_window_get_build_view (MainWindow* self);
 CustomStatusbar* main_window_get_statusbar (MainWindow* self);
@@ -515,29 +517,26 @@ GType application_get_type (void) G_GNUC_CONST;
 Application* application_get_default (void);
 GList* application_get_windows (Application* self);
 GFile* document_get_location (Document* self);
+static Block5Data* block5_data_ref (Block5Data* _data5_);
+static void block5_data_unref (Block5Data* _data5_);
 void main_window_set_active_tab (MainWindow* self, DocumentTab* value);
 DocumentTab* main_window_create_tab_from_location (MainWindow* self, GFile* location, gboolean jump_to);
 void document_set_readonly (Document* self, gboolean value);
 GType tab_info_bar_get_type (void) G_GNUC_CONST;
-TabInfoBar* document_tab_add_message (DocumentTab* self, const char* primary_msg, const char* secondary_msg, GtkMessageType msg_type);
-static void _lambda44_ (gint response_id, Block5Data* _data5_);
-static void __lambda44__gtk_info_bar_response (GtkInfoBar* _sender, gint response_id, gpointer self);
-static Block5Data* block5_data_ref (Block5Data* _data5_);
-static void block5_data_unref (Block5Data* _data5_);
+TabInfoBar* document_tab_add_message (DocumentTab* self, const gchar* primary_msg, const gchar* secondary_msg, GtkMessageType msg_type);
+static void _lambda45_ (gint response_id, Block5Data* _data5_);
+static void __lambda45__gtk_info_bar_response (GtkInfoBar* _sender, gint response_id, gpointer self);
 DocumentTab* main_window_create_tab (MainWindow* self, gboolean jump_to);
 DocumentTab* document_tab_new (void);
 DocumentTab* document_tab_construct (GType object_type);
-GList* application_get_documents (Application* self);
-guint document_get_unsaved_document_n (Document* self);
-static void _vala_array_add1 (guint** array, int* length, int* size, guint value);
-static gboolean _vala_uint_array_contains (guint* stack, int stack_length, guint needle);
-void document_set_unsaved_document_n (Document* self, guint value);
 static DocumentTab* main_window_process_create_tab (MainWindow* self, DocumentTab* tab, gboolean jump_to);
 DocumentTab* document_tab_new_from_location (GFile* location);
 DocumentTab* document_tab_construct_from_location (GType object_type, GFile* location);
 void main_window_create_tab_with_view (MainWindow* self, DocumentView* view);
 DocumentTab* document_tab_new_with_view (DocumentView* view);
 DocumentTab* document_tab_construct_with_view (GType object_type, DocumentView* view);
+static Block6Data* block6_data_ref (Block6Data* _data6_);
+static void block6_data_unref (Block6Data* _data6_);
 static void _lambda37_ (Block6Data* _data6_);
 gboolean main_window_close_tab (MainWindow* self, DocumentTab* tab, gboolean force_close);
 static void __lambda37__document_tab_close_document (DocumentTab* _sender, gpointer self);
@@ -552,27 +551,27 @@ static void __lambda40__g_object_notify (GObject* _sender, GParamSpec* pspec, gp
 static void _lambda41_ (Block6Data* _data6_);
 static void main_window_sync_name (MainWindow* self, DocumentTab* tab);
 static void __lambda41__g_object_notify (GObject* _sender, GParamSpec* pspec, gpointer self);
-static void _lambda42_ (Block6Data* _data6_);
-static void __lambda42__gtk_text_buffer_modified_changed (GtkTextBuffer* _sender, gpointer self);
+static void _lambda42_ (MainWindow* self);
+static void __lambda42__g_object_notify (GObject* _sender, GParamSpec* pspec, gpointer self);
 static void _lambda43_ (Block6Data* _data6_);
-static void __lambda43__g_object_notify (GObject* _sender, GParamSpec* pspec, gpointer self);
+static void __lambda43__gtk_text_buffer_modified_changed (GtkTextBuffer* _sender, gpointer self);
+static void _lambda44_ (Block6Data* _data6_);
+static void __lambda44__g_object_notify (GObject* _sender, GParamSpec* pspec, gpointer self);
 static void _main_window_update_cursor_position_statusbar_document_cursor_moved (Document* _sender, gpointer self);
 void documents_panel_add_tab (DocumentsPanel* self, DocumentTab* tab, gint position, gboolean jump_to);
-static Block6Data* block6_data_ref (Block6Data* _data6_);
-static void block6_data_unref (Block6Data* _data6_);
-const char* document_tab_get_label_text (DocumentTab* self);
+const gchar* document_tab_get_label_text (DocumentTab* self);
 gboolean main_window_save_document (MainWindow* self, Document* doc, gboolean force_save_as);
 void documents_panel_remove_tab (DocumentsPanel* self, DocumentTab* tab);
 DocumentTab* main_window_get_tab_from_location (MainWindow* self, GFile* location);
 gboolean main_window_is_on_workspace_screen (MainWindow* self, GdkScreen* screen, guint workspace);
 guint utils_get_window_workspace (GtkWindow* gtkwindow);
 #define UTILS_ALL_WORKSPACES ((guint) 0xffffff)
-char* document_tab_get_name (DocumentTab* self);
-char* document_tab_get_menu_tip (DocumentTab* self);
+gchar* document_tab_get_name (DocumentTab* self);
+gchar* document_tab_get_menu_tip (DocumentTab* self);
 Document* main_window_get_active_document (MainWindow* self);
-char* document_get_short_name_for_display (Document* self);
-char* utils_str_middle_truncate (const char* str, guint max_length);
-char* utils_get_dirname_for_display (GFile* location);
+gchar* document_get_short_name_for_display (Document* self);
+gchar* utils_str_middle_truncate (const gchar* str, guint max_length);
+gchar* utils_get_dirname_for_display (GFile* location);
 gboolean document_get_readonly (Document* self);
 void document_save (Document* self, gboolean check_file_changed_on_disk, gboolean force);
 void document_set_location (Document* self, GFile* value);
@@ -582,8 +581,8 @@ void dialogs_close_several_unsaved_documents (MainWindow* window, GList* unsaved
 void main_window_remove_all_tabs (MainWindow* self);
 DocumentView* main_window_get_active_view (MainWindow* self);
 guint document_view_my_get_visual_column (DocumentView* self, GtkTextIter* iter);
-static void _lambda69_ (GtkRecentChooser* chooser, MainWindow* self);
-static void __lambda69__gtk_recent_chooser_item_activated (GtkRecentChooser* _sender, gpointer self);
+static void _lambda72_ (GtkRecentChooser* chooser, MainWindow* self);
+static void __lambda72__gtk_recent_chooser_item_activated (GtkRecentChooser* _sender, gpointer self);
 void main_window_save_state (MainWindow* self, gboolean sync);
 gint side_panel_get_active_component (SidePanel* self);
 static void main_window_move_tab_to_new_window (MainWindow* self, DocumentTab* tab);
@@ -603,30 +602,31 @@ void build_tool_free (BuildTool* self);
 void build_tool_copy (const BuildTool* self, BuildTool* dest);
 void build_tool_destroy (BuildTool* self);
 GeeLinkedList* app_settings_get_build_tools (AppSettings* self);
+static Block7Data* block7_data_ref (Block7Data* _data7_);
+static void block7_data_unref (Block7Data* _data7_);
 void build_view_show (BuildView* self);
 gint document_get_project_id (Document* self);
+GList* application_get_documents (Application* self);
 GFile* document_get_main_file (Document* self);
 BuildToolRunner* build_tool_runner_new (GFile* file, BuildTool* tool, BuildView* view, GtkAction* action_stop_exec);
 BuildToolRunner* build_tool_runner_construct (GType object_type, GFile* file, BuildTool* tool, BuildView* view, GtkAction* action_stop_exec);
-static void _lambda72_ (Block7Data* _data7_);
+static void _lambda75_ (Block7Data* _data7_);
 void file_browser_refresh_if_in_dir (FileBrowser* self, GFile* dir);
-static void __lambda72__build_tool_runner_finished (BuildToolRunner* _sender, gpointer self);
-static Block7Data* block7_data_ref (Block7Data* _data7_);
-static void block7_data_unref (Block7Data* _data7_);
+static void __lambda75__build_tool_runner_finished (BuildToolRunner* _sender, gpointer self);
 GtkAction* main_window_get_action_stop_exec (MainWindow* self);
 static void main_window_documents_list_menu_activate (MainWindow* self, GtkAction* action);
 static void _main_window_documents_list_menu_activate_gtk_action_activate (GtkAction* _sender, gpointer self);
-gboolean document_is_tex_document (Document* self);
-char* utils_get_extension (const char* path);
-static gboolean _vala_string_array_contains (char** stack, int stack_length, char* needle);
+gboolean document_is_main_file_a_tex_file (Document* self);
+gchar* utils_get_extension (const gchar* path);
+static gboolean _vala_string_array_contains (gchar** stack, int stack_length, gchar* needle);
 GType templates_get_type (void) G_GNUC_CONST;
 Templates* templates_get_default (void);
 void templates_show_dialog_new (Templates* self, MainWindow* parent);
-static void _g_slist_free_g_object_unref (GSList* self);
+static void _g_slist_free__g_object_unref0_ (GSList* self);
 void templates_show_dialog_create (Templates* self, MainWindow* parent);
 void templates_show_dialog_delete (Templates* self, MainWindow* parent);
-static void _vala_array_add2 (char*** array, int* length, int* size, char* value);
-void document_view_scroll_to_cursor (DocumentView* self, double margin);
+static void _vala_array_add1 (gchar*** array, int* length, int* size, gchar* value);
+void document_view_scroll_to_cursor (DocumentView* self, gdouble margin);
 void document_view_cut_selection (DocumentView* self);
 void document_view_copy_selection (DocumentView* self);
 void document_view_my_paste_clipboard (DocumentView* self);
@@ -643,24 +643,22 @@ void search_and_replace_show_search_and_replace (SearchAndReplace* self);
 void goto_line_show (GotoLine* self);
 void build_tool_runner_abort (BuildToolRunner* self);
 gboolean document_clean_build_files (Document* self, MainWindow* window);
-char* utils_get_shortname (const char* path);
+gchar* utils_get_shortname (const gchar* path);
 void project_dialogs_new_project (MainWindow* main_window);
 gboolean project_dialogs_configure_project (GtkWindow* main_window, gint project_id);
 void project_dialogs_manage_projects (MainWindow* main_window);
-BuildToolRunner* build_tool_runner_new_web_browser (GFile* file, const char* label, BuildView* view, GtkAction* action_stop_exec);
-BuildToolRunner* build_tool_runner_construct_web_browser (GType object_type, GFile* file, const char* label, BuildView* view, GtkAction* action_stop_exec);
+BuildToolRunner* build_tool_runner_new_web_browser (GFile* file, const gchar* label, BuildView* view, GtkAction* action_stop_exec);
+BuildToolRunner* build_tool_runner_construct_web_browser (GType object_type, GFile* file, const gchar* label, BuildView* view, GtkAction* action_stop_exec);
 DocumentTab* documents_panel_get_active_tab (DocumentsPanel* self);
 static void main_window_finalize (GObject* obj);
-static void main_window_get_property (GObject * object, guint property_id, GValue * value, GParamSpec * pspec);
-static void main_window_set_property (GObject * object, guint property_id, const GValue * value, GParamSpec * pspec);
+static void _vala_main_window_get_property (GObject * object, guint property_id, GValue * value, GParamSpec * pspec);
+static void _vala_main_window_set_property (GObject * object, guint property_id, const GValue * value, GParamSpec * pspec);
 static void _vala_array_destroy (gpointer array, gint array_length, GDestroyNotify destroy_func);
 static void _vala_array_free (gpointer array, gint array_length, GDestroyNotify destroy_func);
 static gint _vala_array_length (gpointer array);
-static int _vala_strcmp0 (const char * str1, const char * str2);
-
-static const GtkActionEntry MAIN_WINDOW_action_entries[46] = {{"File", NULL, N_ ("_File")}, {"FileNew", GTK_STOCK_NEW, NULL, NULL, N_ ("New file"), (GCallback) _main_window_on_file_new_gtk_action_callback}, {"FileNewWindow", NULL, N_ ("New _Window"), NULL, N_ ("Create a new window"), (GCallback) _main_window_on_new_window_gtk_action_callback}, {"FileOpen", GTK_STOCK_OPEN, NULL, NULL, N_ ("Open a file"), (GCallback) _main_window_on_file_open_gtk_action_callback}, {"FileSave", GTK_STOCK_SAVE, NULL, NULL, N_ ("Save the current file"), (GCallback) _main_window_on_file_save_gtk_action_callback}, {"FileSaveAs", GTK_STOCK_SAVE_AS, NULL, NULL, N_ ("Save the current file with a different name"), (GCallback) _main_window_on_file_save_as_gtk_action_callback}, {"FileCreateTemplate", NULL, N_ ("Create _Template From Document..."), NULL, N_ ("Create a new template from the current document"), (GCallback) _main_window_on_create_template_gtk_action_callback}, {"FileDeleteTemplate", NULL, N_
  ("_Delete Template..."), NULL, N_ ("Delete personal template(s)"), (GCallback) _main_window_on_delete_template_gtk_action_callback}, {"FileClose", GTK_STOCK_CLOSE, NULL, NULL, N_ ("Close the current file"), (GCallback) _main_window_on_file_close_gtk_action_callback}, {"FileQuit", GTK_STOCK_QUIT, NULL, NULL, N_ ("Quit the program"), (GCallback) _main_window_on_quit_gtk_action_callback}, {"Edit", NULL, N_ ("_Edit")}, {"EditUndo", GTK_STOCK_UNDO, NULL, "<Control>Z", N_ ("Undo the last action"), (GCallback) _main_window_on_edit_undo_gtk_action_callback}, {"EditRedo", GTK_STOCK_REDO, NULL, "<Shift><Control>Z", N_ ("Redo the last undone action"), (GCallback) _main_window_on_edit_redo_gtk_action_callback}, {"EditCut", GTK_STOCK_CUT, NULL, NULL, N_ ("Cut the selection"), (GCallback) _main_window_on_edit_cut_gtk_action_callback}, {"EditCopy", GTK_STOCK_COPY, NULL, NULL, N_ ("Copy the selection"), (GCallback) _main_window_on_edit_copy_gtk_action_callback}, {"EditPaste", GTK_STOCK_PAS
 TE, NULL, NULL, N_ ("Paste the clipboard"), (GCallback) _main_window_on_edit_paste_gtk_action_callback}, {"EditDelete", GTK_STOCK_DELETE, NULL, NULL, N_ ("Delete the selected text"), (GCallback) _main_window_on_edit_delete_gtk_action_callback}, {"EditSelectAll", GTK_STOCK_SELECT_ALL, NULL, "<Control>A", N_ ("Select the entire document"), (GCallback) _main_window_on_edit_select_all_gtk_action_callback}, {"EditComment", NULL, N_ ("_Comment"), "<Control>M", N_ ("Comment the selected lines (add the character \"%\")"), (GCallback) _main_window_on_edit_comment_gtk_action_callback}, {"EditUncomment", NULL, N_ ("_Uncomment"), "<Shift><Control>M", N_ ("Uncomment the selected lines (remove the character \"%\")"), (GCallback) _main_window_on_edit_uncomment_gtk_action_callback}, {"EditPreferences", GTK_STOCK_PREFERENCES, NULL, NULL, N_ ("Configure the application"), (GCallback) _main_window_on_open_preferences_gtk_action_callback}, {"View", NULL, N_ ("_View")}, {"ViewZoomIn", GTK_STOCK_
 ZOOM_IN, N_ ("Zoom _In"), "<Control>plus", N_ ("Enlarge the font"), (GCallback) _main_window_on_view_zoom_in_gtk_action_callback}, {"ViewZoomOut", GTK_STOCK_ZOOM_OUT, N_ ("Zoom _Out"), "<Control>minus", N_ ("Shrink the font"), (GCallback) _main_window_on_view_zoom_out_gtk_action_callback}, {"ViewZoomReset", GTK_STOCK_ZOOM_100, N_ ("_Reset Zoom"), "<Control>0", N_ ("Reset the size of the font"), (GCallback) _main_window_on_view_zoom_reset_gtk_action_callback}, {"Search", NULL, N_ ("_Search")}, {"SearchFind", GTK_STOCK_FIND, NULL, NULL, N_ ("Search for text"), (GCallback) _main_window_on_search_find_gtk_action_callback}, {"SearchReplace", GTK_STOCK_FIND_AND_REPLACE, NULL, NULL, N_ ("Search for and replace text"), (GCallback) _main_window_on_search_replace_gtk_action_callback}, {"SearchGoToLine", GTK_STOCK_JUMP_TO, N_ ("_Go to Line..."), "<Control>G", N_ ("Go to a specific line"), (GCallback) _main_window_on_search_goto_line_gtk_action_callback}, {"Build", NULL, N_ ("_Build")},
  {"BuildClean", GTK_STOCK_CLEAR, N_ ("Cleanup Build _Files"), NULL, N_ ("Clean-up build files (*.aux, *.log, *.out, *.toc, etc)"), (GCallback) _main_window_on_build_clean_gtk_action_callback}, {"BuildStopExecution", GTK_STOCK_STOP, N_ ("_Stop Execution"), "<Release>F12", N_ ("Stop Execution"), (GCallback) _main_window_on_build_stop_execution_gtk_action_callback}, {"BuildViewLog", "view_log", N_ ("View _Log"), NULL, N_ ("View Log"), (GCallback) _main_window_on_build_view_log_gtk_action_callback}, {"Documents", NULL, N_ ("_Documents")}, {"DocumentsSaveAll", GTK_STOCK_SAVE, N_ ("_Save All"), "<Shift><Control>L", N_ ("Save all open files"), (GCallback) _main_window_on_documents_save_all_gtk_action_callback}, {"DocumentsCloseAll", GTK_STOCK_CLOSE, N_ ("_Close All"), "<Shift><Control>W", N_ ("Close all open files"), (GCallback) _main_window_on_documents_close_all_gtk_action_callback}, {"DocumentsPrevious", GTK_STOCK_GO_BACK, N_ ("_Previous Document"), "<Control><Alt>Page_Up", N_ (
 "Activate previous document"), (GCallback) _main_window_on_documents_previous_gtk_action_callback}, {"DocumentsNext", GTK_STOCK_GO_FORWARD, N_ ("_Next Document"), "<Control><Alt>Page_Down", N_ ("Activate next document"), (GCallback) _main_window_on_documents_next_gtk_action_callback}, {"DocumentsMoveToNewWindow", NULL, N_ ("_Move to New Window"), NULL, N_ ("Move the current document to a new window"), (GCallback) _main_window_on_documents_move_to_new_window_gtk_action_callback}, {"Projects", NULL, N_ ("_Projects")}, {"ProjectsNew", GTK_STOCK_NEW, N_ ("_New Project"), NULL, N_ ("Create a new project"), (GCallback) _main_window_on_projects_new_gtk_action_callback}, {"ProjectsConfigCurrent", GTK_STOCK_PROPERTIES, N_ ("_Configure Current Project"), NULL, N_ ("Change the main file of the current project"), (GCallback) _main_window_on_projects_config_current_gtk_action_callback}, {"ProjectsManage", GTK_STOCK_PREFERENCES, N_ ("_Manage Projects"), NULL, N_ ("Manage Projects"), (GCal
 lback) _main_window_on_projects_manage_gtk_action_callback}, {"Help", NULL, N_ ("_Help")}, {"HelpLatexReference", GTK_STOCK_HELP, N_ ("_LaTeX Reference"), "<Release>F1", N_ ("The Kile LaTeX Reference"), (GCallback) _main_window_on_help_latex_reference_gtk_action_callback}, {"HelpAbout", GTK_STOCK_ABOUT, NULL, NULL, N_ ("About LaTeXila"), (GCallback) _main_window_on_about_dialog_gtk_action_callback}};
-static const GtkToggleActionEntry MAIN_WINDOW_toggle_action_entries[3] = {{"ViewSidePanel", NULL, N_ ("_Side panel"), NULL, N_ ("Show or hide the side panel"), (GCallback) _main_window_on_show_side_panel_gtk_action_callback}, {"ViewBottomPanel", NULL, N_ ("_Bottom panel"), NULL, N_ ("Show or hide the bottom panel"), (GCallback) _main_window_on_show_bottom_panel_gtk_action_callback}, {"ViewEditToolbar", NULL, N_ ("_Edit Toolbar"), NULL, N_ ("Show or hide the edit toolbar"), (GCallback) _main_window_on_show_edit_toolbar_gtk_action_callback}};
 
+static const GtkActionEntry MAIN_WINDOW_action_entries[46] = {{"File", NULL, "_File"}, {"FileNew", GTK_STOCK_NEW, NULL, NULL, "New file", (GCallback) _main_window_on_file_new_gtk_action_callback}, {"FileNewWindow", NULL, "New _Window", NULL, "Create a new window", (GCallback) _main_window_on_new_window_gtk_action_callback}, {"FileOpen", GTK_STOCK_OPEN, NULL, NULL, "Open a file", (GCallback) _main_window_on_file_open_gtk_action_callback}, {"FileSave", GTK_STOCK_SAVE, NULL, NULL, "Save the current file", (GCallback) _main_window_on_file_save_gtk_action_callback}, {"FileSaveAs", GTK_STOCK_SAVE_AS, NULL, NULL, "Save the current file with a different name", (GCallback) _main_window_on_file_save_as_gtk_action_callback}, {"FileCreateTemplate", NULL, "Create _Template From Document...", NULL, "Create a new template from the current document", (GCallback) _main_window_on_create_template_gtk_action_callback}, {"FileDeleteTemplate", NULL, "_Delete Template...", NULL, "Delete personal t
 emplate(s)", (GCallback) _main_window_on_delete_template_gtk_action_callback}, {"FileClose", GTK_STOCK_CLOSE, NULL, NULL, "Close the current file", (GCallback) _main_window_on_file_close_gtk_action_callback}, {"FileQuit", GTK_STOCK_QUIT, NULL, NULL, "Quit the program", (GCallback) _main_window_on_quit_gtk_action_callback}, {"Edit", NULL, "_Edit"}, {"EditUndo", GTK_STOCK_UNDO, NULL, "<Control>Z", "Undo the last action", (GCallback) _main_window_on_edit_undo_gtk_action_callback}, {"EditRedo", GTK_STOCK_REDO, NULL, "<Shift><Control>Z", "Redo the last undone action", (GCallback) _main_window_on_edit_redo_gtk_action_callback}, {"EditCut", GTK_STOCK_CUT, NULL, NULL, "Cut the selection", (GCallback) _main_window_on_edit_cut_gtk_action_callback}, {"EditCopy", GTK_STOCK_COPY, NULL, NULL, "Copy the selection", (GCallback) _main_window_on_edit_copy_gtk_action_callback}, {"EditPaste", GTK_STOCK_PASTE, NULL, "", "Paste the clipboard", (GCallback) _main_window_on_edit_paste_gtk_action_cal
 lback}, {"EditDelete", GTK_STOCK_DELETE, NULL, NULL, "Delete the selected text", (GCallback) _main_window_on_edit_delete_gtk_action_callback}, {"EditSelectAll", GTK_STOCK_SELECT_ALL, NULL, "<Control>A", "Select the entire document", (GCallback) _main_window_on_edit_select_all_gtk_action_callback}, {"EditComment", NULL, "_Comment", "<Control>M", "Comment the selected lines (add the character \"%\")", (GCallback) _main_window_on_edit_comment_gtk_action_callback}, {"EditUncomment", NULL, "_Uncomment", "<Shift><Control>M", "Uncomment the selected lines (remove the character \"%\")", (GCallback) _main_window_on_edit_uncomment_gtk_action_callback}, {"EditPreferences", GTK_STOCK_PREFERENCES, NULL, NULL, "Configure the application", (GCallback) _main_window_on_open_preferences_gtk_action_callback}, {"View", NULL, "_View"}, {"ViewZoomIn", GTK_STOCK_ZOOM_IN, "Zoom _In", "<Control>plus", "Enlarge the font", (GCallback) _main_window_on_view_zoom_in_gtk_action_callback}, {"ViewZoomOut", 
 GTK_STOCK_ZOOM_OUT, "Zoom _Out", "<Control>minus", "Shrink the font", (GCallback) _main_window_on_view_zoom_out_gtk_action_callback}, {"ViewZoomReset", GTK_STOCK_ZOOM_100, "_Reset Zoom", "<Control>0", "Reset the size of the font", (GCallback) _main_window_on_view_zoom_reset_gtk_action_callback}, {"Search", NULL, "_Search"}, {"SearchFind", GTK_STOCK_FIND, NULL, NULL, "Search for text", (GCallback) _main_window_on_search_find_gtk_action_callback}, {"SearchReplace", GTK_STOCK_FIND_AND_REPLACE, NULL, NULL, "Search for and replace text", (GCallback) _main_window_on_search_replace_gtk_action_callback}, {"SearchGoToLine", GTK_STOCK_JUMP_TO, "_Go to Line...", "<Control>G", "Go to a specific line", (GCallback) _main_window_on_search_goto_line_gtk_action_callback}, {"Build", NULL, "_Build"}, {"BuildClean", GTK_STOCK_CLEAR, "Cleanup Build _Files", NULL, "Clean-up build files (*.aux, *.log, *.out, *.toc, etc)", (GCallback) _main_window_on_build_clean_gtk_action_callback}, {"BuildStopExe
 cution", GTK_STOCK_STOP, "_Stop Execution", "<Release>F12", "Stop Execution", (GCallback) _main_window_on_build_stop_execution_gtk_action_callback}, {"BuildViewLog", "view_log", "View _Log", NULL, "View Log", (GCallback) _main_window_on_build_view_log_gtk_action_callback}, {"Documents", NULL, "_Documents"}, {"DocumentsSaveAll", GTK_STOCK_SAVE, "_Save All", "<Shift><Control>L", "Save all open files", (GCallback) _main_window_on_documents_save_all_gtk_action_callback}, {"DocumentsCloseAll", GTK_STOCK_CLOSE, "_Close All", "<Shift><Control>W", "Close all open files", (GCallback) _main_window_on_documents_close_all_gtk_action_callback}, {"DocumentsPrevious", GTK_STOCK_GO_BACK, "_Previous Document", "<Control><Alt>Page_Up", "Activate previous document", (GCallback) _main_window_on_documents_previous_gtk_action_callback}, {"DocumentsNext", GTK_STOCK_GO_FORWARD, "_Next Document", "<Control><Alt>Page_Down", "Activate next document", (GCallback) _main_window_on_documents_next_gtk_acti
 on_callback}, {"DocumentsMoveToNewWindow", NULL, "_Move to New Window", NULL, "Move the current document to a new window", (GCallback) _main_window_on_documents_move_to_new_window_gtk_action_callback}, {"Projects", NULL, "_Projects"}, {"ProjectsNew", GTK_STOCK_NEW, "_New Project", NULL, "Create a new project", (GCallback) _main_window_on_projects_new_gtk_action_callback}, {"ProjectsConfigCurrent", GTK_STOCK_PROPERTIES, "_Configure Current Project", NULL, "Change the main file of the current project", (GCallback) _main_window_on_projects_config_current_gtk_action_callback}, {"ProjectsManage", GTK_STOCK_PREFERENCES, "_Manage Projects", NULL, "Manage Projects", (GCallback) _main_window_on_projects_manage_gtk_action_callback}, {"Help", NULL, "_Help"}, {"HelpLatexReference", GTK_STOCK_HELP, "_LaTeX Reference", "<Release>F1", "The Kile LaTeX Reference", (GCallback) _main_window_on_help_latex_reference_gtk_action_callback}, {"HelpAbout", GTK_STOCK_ABOUT, NULL, NULL, "About LaTeXila
 ", (GCallback) _main_window_on_about_dialog_gtk_action_callback}};
+static const GtkToggleActionEntry MAIN_WINDOW_toggle_action_entries[3] = {{"ViewSidePanel", NULL, "_Side panel", NULL, "Show or hide the side panel", (GCallback) _main_window_on_show_side_panel_gtk_action_callback}, {"ViewBottomPanel", NULL, "_Bottom panel", NULL, "Show or hide the bottom panel", (GCallback) _main_window_on_show_bottom_panel_gtk_action_callback}, {"ViewEditToolbar", NULL, "_Edit Toolbar", NULL, "Show or hide the edit toolbar", (GCallback) _main_window_on_show_edit_toolbar_gtk_action_callback}};
 
 static void _main_window_on_file_new_gtk_action_callback (GtkAction* action, gpointer self) {
 	main_window_on_file_new (self);
@@ -872,20 +870,24 @@ static gpointer _g_object_ref0 (gpointer self) {
 }
 
 
-static void _lambda73_ (GdkEventButton* event, MainWindow* self) {
+static void _lambda76_ (GdkEventButton* event, MainWindow* self) {
+	GtkWidget* _tmp0_ = NULL;
+	GtkMenu* _tmp1_;
 	GtkMenu* popup_menu;
-	popup_menu = _g_object_ref0 (GTK_MENU (gtk_ui_manager_get_widget (self->priv->ui_manager, "/NotebookPopup")));
+	_tmp0_ = gtk_ui_manager_get_widget (self->priv->ui_manager, "/NotebookPopup");
+	_tmp1_ = _g_object_ref0 (GTK_MENU (_tmp0_));
+	popup_menu = _tmp1_;
 	gtk_menu_popup (popup_menu, NULL, NULL, NULL, NULL, (*event).button, (*event).time);
 	_g_object_unref0 (popup_menu);
 }
 
 
-static void __lambda73__documents_panel_right_click (DocumentsPanel* _sender, GdkEventButton* event, gpointer self) {
-	_lambda73_ (event, self);
+static void __lambda76__documents_panel_right_click (DocumentsPanel* _sender, GdkEventButton* event, gpointer self) {
+	_lambda76_ (event, self);
 }
 
 
-static gboolean _lambda74_ (MainWindow* self) {
+static gboolean _lambda77_ (MainWindow* self) {
 	gboolean result = FALSE;
 	main_window_on_quit (self);
 	result = TRUE;
@@ -893,16 +895,18 @@ static gboolean _lambda74_ (MainWindow* self) {
 }
 
 
-static gboolean __lambda74__gtk_widget_delete_event (GtkWidget* _sender, GdkEvent* event, gpointer self) {
+static gboolean __lambda77__gtk_widget_delete_event (GtkWidget* _sender, GdkEvent* event, gpointer self) {
 	gboolean result;
-	result = _lambda74_ (self);
+	result = _lambda77_ (self);
 	return result;
 }
 
 
-static void _lambda75_ (MainWindow* self) {
+static void _lambda78_ (MainWindow* self) {
+	gint _tmp0_;
 	gint nb_pages;
-	nb_pages = gtk_notebook_get_n_pages ((GtkNotebook*) self->priv->documents_panel);
+	_tmp0_ = gtk_notebook_get_n_pages ((GtkNotebook*) self->priv->documents_panel);
+	nb_pages = _tmp0_;
 	if (nb_pages == 1) {
 		main_window_set_file_actions_sensitivity (self, TRUE);
 	} else {
@@ -914,14 +918,16 @@ static void _lambda75_ (MainWindow* self) {
 }
 
 
-static void __lambda75__gtk_notebook_page_added (GtkNotebook* _sender, GtkWidget* p0, guint p1, gpointer self) {
-	_lambda75_ (self);
+static void __lambda78__gtk_notebook_page_added (GtkNotebook* _sender, GtkWidget* p0, guint p1, gpointer self) {
+	_lambda78_ (self);
 }
 
 
-static void _lambda76_ (MainWindow* self) {
+static void _lambda79_ (MainWindow* self) {
+	gint _tmp0_;
 	gint nb_pages;
-	nb_pages = gtk_notebook_get_n_pages ((GtkNotebook*) self->priv->documents_panel);
+	_tmp0_ = gtk_notebook_get_n_pages ((GtkNotebook*) self->priv->documents_panel);
+	nb_pages = _tmp0_;
 	if (nb_pages == 0) {
 		custom_statusbar_set_cursor_position (self->priv->statusbar, -1, -1);
 		main_window_set_file_actions_sensitivity (self, FALSE);
@@ -940,13 +946,16 @@ static void _lambda76_ (MainWindow* self) {
 }
 
 
-static void __lambda76__gtk_notebook_page_removed (GtkNotebook* _sender, GtkWidget* p0, guint p1, gpointer self) {
-	_lambda76_ (self);
+static void __lambda79__gtk_notebook_page_removed (GtkNotebook* _sender, GtkWidget* p0, guint p1, gpointer self) {
+	_lambda79_ (self);
 }
 
 
-static void _lambda77_ (GtkNotebookPage* pg, guint page_num, MainWindow* self) {
-	char* action_name;
+static void _lambda80_ (GtkNotebookPage* pg, guint page_num, MainWindow* self) {
+	gchar* _tmp0_ = NULL;
+	gchar* action_name;
+	GtkAction* _tmp1_ = NULL;
+	GtkRadioAction* _tmp2_;
 	GtkRadioAction* action;
 	g_return_if_fail (pg != NULL);
 	main_window_set_undo_sensitivity (self);
@@ -956,8 +965,11 @@ static void _lambda77_ (GtkNotebookPage* pg, guint page_num, MainWindow* self) {
 	main_window_update_config_project_sensitivity (self);
 	main_window_my_set_title (self);
 	main_window_update_cursor_position_statusbar (self);
-	action_name = g_strdup_printf ("Tab_%u", page_num);
-	action = _g_object_ref0 (GTK_RADIO_ACTION (gtk_action_group_get_action (self->priv->documents_list_action_group, action_name)));
+	_tmp0_ = g_strdup_printf ("Tab_%u", page_num);
+	action_name = _tmp0_;
+	_tmp1_ = gtk_action_group_get_action (self->priv->documents_list_action_group, action_name);
+	_tmp2_ = _g_object_ref0 (GTK_RADIO_ACTION (_tmp1_));
+	action = _tmp2_;
 	if (action != NULL) {
 		gtk_toggle_action_set_active ((GtkToggleAction*) action, TRUE);
 	}
@@ -969,39 +981,43 @@ static void _lambda77_ (GtkNotebookPage* pg, guint page_num, MainWindow* self) {
 }
 
 
-static void __lambda77__gtk_notebook_switch_page (GtkNotebook* _sender, GtkNotebookPage* page, guint page_num, gpointer self) {
-	_lambda77_ (page, page_num, self);
+static void __lambda80__gtk_notebook_switch_page (GtkNotebook* _sender, GtkNotebookPage* page, guint page_num, gpointer self) {
+	_lambda80_ (page, page_num, self);
 }
 
 
-static void _lambda78_ (MainWindow* self) {
+static void _lambda81_ (MainWindow* self) {
 	main_window_update_next_prev_doc_sensitivity (self);
 	main_window_update_documents_list_menu (self);
 }
 
 
-static void __lambda78__gtk_notebook_page_reordered (GtkNotebook* _sender, GtkWidget* p0, guint p1, gpointer self) {
-	_lambda78_ (self);
+static void __lambda81__gtk_notebook_page_reordered (GtkNotebook* _sender, GtkWidget* p0, guint p1, gpointer self) {
+	_lambda81_ (self);
 }
 
 
-static void _lambda79_ (MainWindow* self) {
+static void _lambda82_ (MainWindow* self) {
+	CompletionProvider* _tmp0_ = NULL;
 	CompletionProvider* provider;
-	provider = completion_provider_get_default ();
+	_tmp0_ = completion_provider_get_default ();
+	provider = _tmp0_;
 	completion_provider_hide_calltip_window (provider);
 	_g_object_unref0 (provider);
 }
 
 
-static void __lambda79__g_object_notify (GObject* _sender, GParamSpec* pspec, gpointer self) {
-	_lambda79_ (self);
+static void __lambda82__g_object_notify (GObject* _sender, GParamSpec* pspec, gpointer self) {
+	_lambda82_ (self);
 }
 
 
-static gboolean _lambda80_ (MainWindow* self) {
+static gboolean _lambda83_ (MainWindow* self) {
 	gboolean result = FALSE;
+	CompletionProvider* _tmp0_ = NULL;
 	CompletionProvider* provider;
-	provider = completion_provider_get_default ();
+	_tmp0_ = completion_provider_get_default ();
+	provider = _tmp0_;
 	completion_provider_hide_calltip_window (provider);
 	result = FALSE;
 	_g_object_unref0 (provider);
@@ -1009,45 +1025,69 @@ static gboolean _lambda80_ (MainWindow* self) {
 }
 
 
-static gboolean __lambda80__gtk_widget_focus_out_event (GtkWidget* _sender, GdkEventFocus* event, gpointer self) {
+static gboolean __lambda83__gtk_widget_focus_out_event (GtkWidget* _sender, GdkEventFocus* event, gpointer self) {
 	gboolean result;
-	result = _lambda80_ (self);
+	result = _lambda83_ (self);
 	return result;
 }
 
 
 MainWindow* main_window_construct (GType object_type) {
-	MainWindow * self;
+	MainWindow * self = NULL;
+	GSettings* _tmp0_ = NULL;
 	GSettings* settings;
 	gint w = 0;
 	gint h = 0;
+	gint _tmp1_;
 	GdkWindowState state;
+	GtkWidget* _tmp2_ = NULL;
+	GtkWidget* _tmp3_;
 	GtkWidget* menu;
+	GtkWidget* _tmp4_ = NULL;
+	GtkToolbar* _tmp5_;
 	GtkToolbar* toolbar;
-	GtkToolbar* _tmp0_;
+	GtkWidget* _tmp6_ = NULL;
+	GtkToolbar* _tmp7_;
+	GtkWidget* _tmp8_ = NULL;
+	GtkToolbar* _tmp9_;
 	GtkToolbar* build_toolbar;
-	DocumentsPanel* _tmp1_;
-	CustomStatusbar* _tmp2_;
-	GotoLine* _tmp3_;
-	SearchAndReplace* _tmp4_;
-	GtkAction* _tmp5_;
+	DocumentsPanel* _tmp10_ = NULL;
+	CustomStatusbar* _tmp11_ = NULL;
+	guint _tmp12_;
+	GotoLine* _tmp13_ = NULL;
+	SearchAndReplace* _tmp14_ = NULL;
+	GtkAction* _tmp15_ = NULL;
+	GtkAction* _tmp16_;
+	GtkAction* _tmp17_ = NULL;
+	GtkToggleAction* _tmp18_;
 	GtkToggleAction* action_view_bottom_panel;
-	BuildView* _tmp6_;
+	BuildView* _tmp19_ = NULL;
+	GtkAction* _tmp20_ = NULL;
+	GtkToggleAction* _tmp21_;
 	GtkToggleAction* action_view_side_panel;
-	SidePanel* _tmp7_;
-	Symbols* _tmp8_;
-	FileBrowser* _tmp9_;
+	SidePanel* _tmp22_ = NULL;
+	Symbols* _tmp23_ = NULL;
+	const gchar* _tmp24_ = NULL;
+	FileBrowser* _tmp25_ = NULL;
+	const gchar* _tmp26_ = NULL;
+	GtkVBox* _tmp27_ = NULL;
 	GtkVBox* main_vbox;
-	GtkHPaned* _tmp10_;
+	GtkHPaned* _tmp28_ = NULL;
+	gint _tmp29_;
+	GtkVBox* _tmp30_ = NULL;
 	GtkVBox* vbox_source_view;
-	GtkWidget* _tmp11_;
-	GtkVPaned* _tmp12_;
-	self = g_object_newv (object_type, 0, NULL);
+	GtkWidget* _tmp31_ = NULL;
+	GtkWidget* _tmp32_;
+	GtkVPaned* _tmp33_ = NULL;
+	gint _tmp34_;
+	self = (MainWindow*) g_object_new (object_type, NULL);
 	gtk_window_set_title ((GtkWindow*) self, "LaTeXila");
-	settings = g_settings_new ("org.gnome.latexila.state.window");
+	_tmp0_ = g_settings_new ("org.gnome.latexila.state.window");
+	settings = _tmp0_;
 	g_settings_get (settings, "size", "(ii)", &w, &h);
 	gtk_window_set_default_size ((GtkWindow*) self, w, h);
-	state = (GdkWindowState) g_settings_get_int (settings, "state");
+	_tmp1_ = g_settings_get_int (settings, "state");
+	state = (GdkWindowState) _tmp1_;
 	if ((state & GDK_WINDOW_STATE_MAXIMIZED) == GDK_WINDOW_STATE_MAXIMIZED) {
 		gtk_window_maximize ((GtkWindow*) self);
 	} else {
@@ -1059,62 +1099,107 @@ MainWindow* main_window_construct (GType object_type) {
 		gtk_window_unstick ((GtkWindow*) self);
 	}
 	main_window_initialize_menubar_and_toolbar (self);
-	menu = _g_object_ref0 (gtk_ui_manager_get_widget (self->priv->ui_manager, "/MainMenu"));
-	toolbar = _g_object_ref0 (GTK_TOOLBAR (gtk_ui_manager_get_widget (self->priv->ui_manager, "/MainToolbar")));
+	_tmp2_ = gtk_ui_manager_get_widget (self->priv->ui_manager, "/MainMenu");
+	_tmp3_ = _g_object_ref0 (_tmp2_);
+	menu = _tmp3_;
+	_tmp4_ = gtk_ui_manager_get_widget (self->priv->ui_manager, "/MainToolbar");
+	_tmp5_ = _g_object_ref0 (GTK_TOOLBAR (_tmp4_));
+	toolbar = _tmp5_;
 	gtk_toolbar_set_style (toolbar, GTK_TOOLBAR_ICONS);
 	main_window_setup_toolbar_open_button (self, toolbar);
-	self->priv->edit_toolbar = (_tmp0_ = _g_object_ref0 (GTK_TOOLBAR (gtk_ui_manager_get_widget (self->priv->ui_manager, "/EditToolbar"))), _g_object_unref0 (self->priv->edit_toolbar), _tmp0_);
+	_tmp6_ = gtk_ui_manager_get_widget (self->priv->ui_manager, "/EditToolbar");
+	_tmp7_ = _g_object_ref0 (GTK_TOOLBAR (_tmp6_));
+	_g_object_unref0 (self->priv->edit_toolbar);
+	self->priv->edit_toolbar = _tmp7_;
 	gtk_toolbar_set_style (self->priv->edit_toolbar, GTK_TOOLBAR_ICONS);
-	build_toolbar = _g_object_ref0 (GTK_TOOLBAR (gtk_ui_manager_get_widget (self->priv->ui_manager, "/BuildToolbar")));
+	_tmp8_ = gtk_ui_manager_get_widget (self->priv->ui_manager, "/BuildToolbar");
+	_tmp9_ = _g_object_ref0 (GTK_TOOLBAR (_tmp8_));
+	build_toolbar = _tmp9_;
 	gtk_toolbar_set_style (build_toolbar, GTK_TOOLBAR_ICONS);
 	gtk_toolbar_set_icon_size (build_toolbar, GTK_ICON_SIZE_MENU);
 	gtk_orientable_set_orientation ((GtkOrientable*) build_toolbar, GTK_ORIENTATION_VERTICAL);
-	self->priv->documents_panel = (_tmp1_ = g_object_ref_sink (documents_panel_new (self)), _g_object_unref0 (self->priv->documents_panel), _tmp1_);
-	g_signal_connect_object (self->priv->documents_panel, "right-click", (GCallback) __lambda73__documents_panel_right_click, self, 0);
-	self->priv->statusbar = (_tmp2_ = g_object_ref_sink (custom_statusbar_new ()), _g_object_unref0 (self->priv->statusbar), _tmp2_);
-	self->priv->tip_message_cid = gtk_statusbar_get_context_id ((GtkStatusbar*) self->priv->statusbar, "tip_message");
-	self->priv->goto_line = (_tmp3_ = g_object_ref_sink (goto_line_new (self)), _g_object_unref0 (self->priv->goto_line), _tmp3_);
-	self->priv->search_and_replace = (_tmp4_ = search_and_replace_new (self), _g_object_unref0 (self->priv->search_and_replace), _tmp4_);
-	self->priv->action_stop_exec = (_tmp5_ = _g_object_ref0 (gtk_action_group_get_action (self->priv->action_group, "BuildStopExecution")), _g_object_unref0 (self->priv->action_stop_exec), _tmp5_);
+	_tmp10_ = documents_panel_new (self);
+	_g_object_unref0 (self->priv->documents_panel);
+	self->priv->documents_panel = g_object_ref_sink (_tmp10_);
+	g_signal_connect_object (self->priv->documents_panel, "right-click", (GCallback) __lambda76__documents_panel_right_click, self, 0);
+	_tmp11_ = custom_statusbar_new ();
+	_g_object_unref0 (self->priv->statusbar);
+	self->priv->statusbar = g_object_ref_sink (_tmp11_);
+	_tmp12_ = gtk_statusbar_get_context_id ((GtkStatusbar*) self->priv->statusbar, "tip_message");
+	self->priv->tip_message_cid = _tmp12_;
+	_tmp13_ = goto_line_new (self);
+	_g_object_unref0 (self->priv->goto_line);
+	self->priv->goto_line = g_object_ref_sink (_tmp13_);
+	_tmp14_ = search_and_replace_new (self);
+	_g_object_unref0 (self->priv->search_and_replace);
+	self->priv->search_and_replace = _tmp14_;
+	_tmp15_ = gtk_action_group_get_action (self->priv->action_group, "BuildStopExecution");
+	_tmp16_ = _g_object_ref0 (_tmp15_);
+	_g_object_unref0 (self->priv->action_stop_exec);
+	self->priv->action_stop_exec = _tmp16_;
 	gtk_action_set_sensitive (self->priv->action_stop_exec, FALSE);
-	action_view_bottom_panel = _g_object_ref0 (GTK_TOGGLE_ACTION (gtk_action_group_get_action (self->priv->action_group, "ViewBottomPanel")));
-	self->priv->build_view = (_tmp6_ = g_object_ref_sink (build_view_new (self, build_toolbar, action_view_bottom_panel)), _g_object_unref0 (self->priv->build_view), _tmp6_);
-	action_view_side_panel = _g_object_ref0 (GTK_TOGGLE_ACTION (gtk_action_group_get_action (self->priv->action_group, "ViewSidePanel")));
-	self->priv->side_panel = (_tmp7_ = g_object_ref_sink (side_panel_new (self, action_view_side_panel)), _g_object_unref0 (self->priv->side_panel), _tmp7_);
-	self->priv->symbols = (_tmp8_ = g_object_ref_sink (symbols_new (self)), _g_object_unref0 (self->priv->symbols), _tmp8_);
-	side_panel_add_component (self->priv->side_panel, _ ("Symbols"), "symbol_alpha", (GtkVBox*) self->priv->symbols);
-	self->priv->file_browser = (_tmp9_ = g_object_ref_sink (file_browser_new (self)), _g_object_unref0 (self->priv->file_browser), _tmp9_);
-	side_panel_add_component (self->priv->side_panel, _ ("File Browser"), GTK_STOCK_OPEN, (GtkVBox*) self->priv->file_browser);
+	_tmp17_ = gtk_action_group_get_action (self->priv->action_group, "ViewBottomPanel");
+	_tmp18_ = _g_object_ref0 (GTK_TOGGLE_ACTION (_tmp17_));
+	action_view_bottom_panel = _tmp18_;
+	_tmp19_ = build_view_new (self, build_toolbar, action_view_bottom_panel);
+	_g_object_unref0 (self->priv->build_view);
+	self->priv->build_view = g_object_ref_sink (_tmp19_);
+	_tmp20_ = gtk_action_group_get_action (self->priv->action_group, "ViewSidePanel");
+	_tmp21_ = _g_object_ref0 (GTK_TOGGLE_ACTION (_tmp20_));
+	action_view_side_panel = _tmp21_;
+	_tmp22_ = side_panel_new (self, action_view_side_panel);
+	_g_object_unref0 (self->priv->side_panel);
+	self->priv->side_panel = g_object_ref_sink (_tmp22_);
+	_tmp23_ = symbols_new (self);
+	_g_object_unref0 (self->priv->symbols);
+	self->priv->symbols = g_object_ref_sink (_tmp23_);
+	_tmp24_ = _ ("Symbols");
+	side_panel_add_component (self->priv->side_panel, _tmp24_, "symbol_alpha", (GtkVBox*) self->priv->symbols);
+	_tmp25_ = file_browser_new (self);
+	_g_object_unref0 (self->priv->file_browser);
+	self->priv->file_browser = g_object_ref_sink (_tmp25_);
+	_tmp26_ = _ ("File Browser");
+	side_panel_add_component (self->priv->side_panel, _tmp26_, GTK_STOCK_OPEN, (GtkVBox*) self->priv->file_browser);
 	side_panel_restore_state (self->priv->side_panel);
-	g_signal_connect_object ((GtkWidget*) self, "delete-event", (GCallback) __lambda74__gtk_widget_delete_event, self, 0);
-	g_signal_connect_object ((GtkNotebook*) self->priv->documents_panel, "page-added", (GCallback) __lambda75__gtk_notebook_page_added, self, 0);
-	g_signal_connect_object ((GtkNotebook*) self->priv->documents_panel, "page-removed", (GCallback) __lambda76__gtk_notebook_page_removed, self, 0);
-	g_signal_connect_object ((GtkNotebook*) self->priv->documents_panel, "switch-page", (GCallback) __lambda77__gtk_notebook_switch_page, self, 0);
-	g_signal_connect_object ((GtkNotebook*) self->priv->documents_panel, "page-reordered", (GCallback) __lambda78__gtk_notebook_page_reordered, self, 0);
-	g_signal_connect_object ((GObject*) self, "notify::active-tab", (GCallback) __lambda79__g_object_notify, self, 0);
-	g_signal_connect_object ((GtkWidget*) self, "focus-out-event", (GCallback) __lambda80__gtk_widget_focus_out_event, self, 0);
+	g_signal_connect_object ((GtkWidget*) self, "delete-event", (GCallback) __lambda77__gtk_widget_delete_event, self, 0);
+	g_signal_connect_object ((GtkNotebook*) self->priv->documents_panel, "page-added", (GCallback) __lambda78__gtk_notebook_page_added, self, 0);
+	g_signal_connect_object ((GtkNotebook*) self->priv->documents_panel, "page-removed", (GCallback) __lambda79__gtk_notebook_page_removed, self, 0);
+	g_signal_connect_object ((GtkNotebook*) self->priv->documents_panel, "switch-page", (GCallback) __lambda80__gtk_notebook_switch_page, self, 0);
+	g_signal_connect_object ((GtkNotebook*) self->priv->documents_panel, "page-reordered", (GCallback) __lambda81__gtk_notebook_page_reordered, self, 0);
+	g_signal_connect_object ((GObject*) self, "notify::active-tab", (GCallback) __lambda82__g_object_notify, self, 0);
+	g_signal_connect_object ((GtkWidget*) self, "focus-out-event", (GCallback) __lambda83__gtk_widget_focus_out_event, self, 0);
 	main_window_set_file_actions_sensitivity (self, FALSE);
 	main_window_set_documents_move_to_new_window_sensitivity (self, FALSE);
-	main_vbox = g_object_ref_sink ((GtkVBox*) gtk_vbox_new (FALSE, 0));
+	_tmp27_ = (GtkVBox*) gtk_vbox_new (FALSE, 0);
+	main_vbox = g_object_ref_sink (_tmp27_);
 	gtk_box_pack_start ((GtkBox*) main_vbox, menu, FALSE, FALSE, (guint) 0);
 	gtk_box_pack_start ((GtkBox*) main_vbox, (GtkWidget*) toolbar, FALSE, FALSE, (guint) 0);
 	gtk_box_pack_start ((GtkBox*) main_vbox, (GtkWidget*) self->priv->edit_toolbar, FALSE, FALSE, (guint) 0);
 	gtk_widget_show ((GtkWidget*) main_vbox);
 	gtk_widget_show_all (menu);
 	gtk_widget_show_all ((GtkWidget*) toolbar);
-	self->priv->main_hpaned = (_tmp10_ = g_object_ref_sink ((GtkHPaned*) gtk_hpaned_new ()), _g_object_unref0 (self->priv->main_hpaned), _tmp10_);
-	gtk_paned_set_position ((GtkPaned*) self->priv->main_hpaned, g_settings_get_int (settings, "side-panel-size"));
-	gtk_box_pack_start ((GtkBox*) main_vbox, (GtkWidget*) self->priv->main_hpaned, TRUE, TRUE, 0);
+	_tmp28_ = (GtkHPaned*) gtk_hpaned_new ();
+	_g_object_unref0 (self->priv->main_hpaned);
+	self->priv->main_hpaned = g_object_ref_sink (_tmp28_);
+	_tmp29_ = g_settings_get_int (settings, "side-panel-size");
+	gtk_paned_set_position ((GtkPaned*) self->priv->main_hpaned, _tmp29_);
+	gtk_box_pack_start ((GtkBox*) main_vbox, (GtkWidget*) self->priv->main_hpaned, TRUE, TRUE, (guint) 0);
 	gtk_widget_show ((GtkWidget*) self->priv->main_hpaned);
-	vbox_source_view = g_object_ref_sink ((GtkVBox*) gtk_vbox_new (FALSE, 2));
-	gtk_box_pack_start ((GtkBox*) vbox_source_view, (GtkWidget*) self->priv->documents_panel, TRUE, TRUE, 0);
+	_tmp30_ = (GtkVBox*) gtk_vbox_new (FALSE, 2);
+	vbox_source_view = g_object_ref_sink (_tmp30_);
+	gtk_box_pack_start ((GtkBox*) vbox_source_view, (GtkWidget*) self->priv->documents_panel, TRUE, TRUE, (guint) 0);
 	gtk_box_pack_start ((GtkBox*) vbox_source_view, (GtkWidget*) self->priv->goto_line, FALSE, FALSE, (guint) 0);
-	gtk_box_pack_start ((GtkBox*) vbox_source_view, _tmp11_ = search_and_replace_get_widget (self->priv->search_and_replace), FALSE, FALSE, 0);
-	_g_object_unref0 (_tmp11_);
+	_tmp31_ = search_and_replace_get_widget (self->priv->search_and_replace);
+	_tmp32_ = _tmp31_;
+	gtk_box_pack_start ((GtkBox*) vbox_source_view, _tmp32_, FALSE, FALSE, (guint) 0);
+	_g_object_unref0 (_tmp32_);
 	gtk_widget_show ((GtkWidget*) vbox_source_view);
 	gtk_widget_show_all ((GtkWidget*) self->priv->documents_panel);
-	self->priv->vpaned = (_tmp12_ = g_object_ref_sink ((GtkVPaned*) gtk_vpaned_new ()), _g_object_unref0 (self->priv->vpaned), _tmp12_);
-	gtk_paned_set_position ((GtkPaned*) self->priv->vpaned, g_settings_get_int (settings, "vertical-paned-position"));
+	_tmp33_ = (GtkVPaned*) gtk_vpaned_new ();
+	_g_object_unref0 (self->priv->vpaned);
+	self->priv->vpaned = g_object_ref_sink (_tmp33_);
+	_tmp34_ = g_settings_get_int (settings, "vertical-paned-position");
+	gtk_paned_set_position ((GtkPaned*) self->priv->vpaned, _tmp34_);
 	gtk_paned_pack1 ((GtkPaned*) self->priv->vpaned, (GtkWidget*) vbox_source_view, TRUE, TRUE);
 	gtk_paned_pack2 ((GtkPaned*) self->priv->vpaned, (GtkWidget*) self->priv->build_view, FALSE, TRUE);
 	gtk_paned_add1 ((GtkPaned*) self->priv->main_hpaned, (GtkWidget*) self->priv->side_panel);
@@ -1143,8 +1228,13 @@ MainWindow* main_window_new (void) {
 }
 
 
-static void _g_list_free_g_object_unref (GList* self) {
-	g_list_foreach (self, (GFunc) g_object_unref, NULL);
+static void _g_object_unref0_ (gpointer var) {
+	(var == NULL) ? NULL : (var = (g_object_unref (var), NULL));
+}
+
+
+static void _g_list_free__g_object_unref0_ (GList* self) {
+	g_list_foreach (self, (GFunc) _g_object_unref0_, NULL);
 	g_list_free (self);
 }
 
@@ -1152,27 +1242,37 @@ static void _g_list_free_g_object_unref (GList* self) {
 GList* main_window_get_documents (MainWindow* self) {
 	GList* result = NULL;
 	GList* res;
+	gint _tmp0_;
 	gint nb;
 	g_return_val_if_fail (self != NULL, NULL);
 	res = NULL;
-	nb = gtk_notebook_get_n_pages ((GtkNotebook*) self->priv->documents_panel);
+	_tmp0_ = gtk_notebook_get_n_pages ((GtkNotebook*) self->priv->documents_panel);
+	nb = _tmp0_;
 	{
 		gint i;
 		i = 0;
 		{
-			gboolean _tmp0_;
-			_tmp0_ = TRUE;
+			gboolean _tmp1_;
+			_tmp1_ = TRUE;
 			while (TRUE) {
+				GtkWidget* _tmp2_ = NULL;
+				DocumentTab* _tmp3_;
 				DocumentTab* tab;
-				if (!_tmp0_) {
+				Document* _tmp4_ = NULL;
+				Document* _tmp5_;
+				if (!_tmp1_) {
 					i++;
 				}
-				_tmp0_ = FALSE;
+				_tmp1_ = FALSE;
 				if (!(i < nb)) {
 					break;
 				}
-				tab = _g_object_ref0 (DOCUMENT_TAB (gtk_notebook_get_nth_page ((GtkNotebook*) self->priv->documents_panel, i)));
-				res = g_list_append (res, _g_object_ref0 (document_tab_get_document (tab)));
+				_tmp2_ = gtk_notebook_get_nth_page ((GtkNotebook*) self->priv->documents_panel, i);
+				_tmp3_ = _g_object_ref0 (DOCUMENT_TAB (_tmp2_));
+				tab = _tmp3_;
+				_tmp4_ = document_tab_get_document (tab);
+				_tmp5_ = _g_object_ref0 (_tmp4_);
+				res = g_list_append (res, _tmp5_);
 				_g_object_unref0 (tab);
 			}
 		}
@@ -1185,23 +1285,31 @@ GList* main_window_get_documents (MainWindow* self) {
 GList* main_window_get_unsaved_documents (MainWindow* self) {
 	GList* result = NULL;
 	GList* list;
+	GList* _tmp0_ = NULL;
 	g_return_val_if_fail (self != NULL, NULL);
 	list = NULL;
+	_tmp0_ = main_window_get_documents (self);
 	{
 		GList* doc_collection;
 		GList* doc_it;
-		doc_collection = main_window_get_documents (self);
+		doc_collection = _tmp0_;
 		for (doc_it = doc_collection; doc_it != NULL; doc_it = doc_it->next) {
+			Document* _tmp1_;
 			Document* doc;
-			doc = _g_object_ref0 ((Document*) doc_it->data);
+			_tmp1_ = _g_object_ref0 ((Document*) doc_it->data);
+			doc = _tmp1_;
 			{
-				if (document_get_modified (doc)) {
-					list = g_list_append (list, _g_object_ref0 (doc));
+				gboolean _tmp2_;
+				_tmp2_ = document_get_modified (doc);
+				if (_tmp2_) {
+					Document* _tmp3_;
+					_tmp3_ = _g_object_ref0 (doc);
+					list = g_list_append (list, _tmp3_);
 				}
 				_g_object_unref0 (doc);
 			}
 		}
-		__g_list_free_g_object_unref0 (doc_collection);
+		__g_list_free__g_object_unref0_0 (doc_collection);
 	}
 	result = list;
 	return result;
@@ -1211,27 +1319,37 @@ GList* main_window_get_unsaved_documents (MainWindow* self) {
 GList* main_window_get_views (MainWindow* self) {
 	GList* result = NULL;
 	GList* res;
+	gint _tmp0_;
 	gint nb;
 	g_return_val_if_fail (self != NULL, NULL);
 	res = NULL;
-	nb = gtk_notebook_get_n_pages ((GtkNotebook*) self->priv->documents_panel);
+	_tmp0_ = gtk_notebook_get_n_pages ((GtkNotebook*) self->priv->documents_panel);
+	nb = _tmp0_;
 	{
 		gint i;
 		i = 0;
 		{
-			gboolean _tmp0_;
-			_tmp0_ = TRUE;
+			gboolean _tmp1_;
+			_tmp1_ = TRUE;
 			while (TRUE) {
+				GtkWidget* _tmp2_ = NULL;
+				DocumentTab* _tmp3_;
 				DocumentTab* tab;
-				if (!_tmp0_) {
+				DocumentView* _tmp4_ = NULL;
+				DocumentView* _tmp5_;
+				if (!_tmp1_) {
 					i++;
 				}
-				_tmp0_ = FALSE;
+				_tmp1_ = FALSE;
 				if (!(i < nb)) {
 					break;
 				}
-				tab = _g_object_ref0 (DOCUMENT_TAB (gtk_notebook_get_nth_page ((GtkNotebook*) self->priv->documents_panel, i)));
-				res = g_list_append (res, _g_object_ref0 (document_tab_get_view (tab)));
+				_tmp2_ = gtk_notebook_get_nth_page ((GtkNotebook*) self->priv->documents_panel, i);
+				_tmp3_ = _g_object_ref0 (DOCUMENT_TAB (_tmp2_));
+				tab = _tmp3_;
+				_tmp4_ = document_tab_get_view (tab);
+				_tmp5_ = _g_object_ref0 (_tmp4_);
+				res = g_list_append (res, _tmp5_);
 				_g_object_unref0 (tab);
 			}
 		}
@@ -1251,12 +1369,14 @@ static void _main_window_on_menu_item_deselect_gtk_item_deselect (GtkItem* _send
 }
 
 
-static void _lambda70_ (GtkAction* action, GtkWidget* p, MainWindow* self) {
+static void _lambda73_ (GtkAction* action, GtkWidget* p, MainWindow* self) {
 	g_return_if_fail (action != NULL);
 	g_return_if_fail (p != NULL);
 	if (GTK_IS_MENU_ITEM (p)) {
+		GtkMenuItem* _tmp0_;
 		GtkMenuItem* proxy;
-		proxy = _g_object_ref0 (GTK_MENU_ITEM (p));
+		_tmp0_ = _g_object_ref0 (GTK_MENU_ITEM (p));
+		proxy = _tmp0_;
 		g_signal_connect_object ((GtkItem*) proxy, "select", (GCallback) _main_window_on_menu_item_select_gtk_item_select, self, 0);
 		g_signal_connect_object ((GtkItem*) proxy, "deselect", (GCallback) _main_window_on_menu_item_deselect_gtk_item_deselect, self, 0);
 		_g_object_unref0 (proxy);
@@ -1264,73 +1384,86 @@ static void _lambda70_ (GtkAction* action, GtkWidget* p, MainWindow* self) {
 }
 
 
-static void __lambda70__gtk_ui_manager_connect_proxy (GtkUIManager* _sender, GtkAction* action, GtkWidget* proxy, gpointer self) {
-	_lambda70_ (action, proxy, self);
+static void __lambda73__gtk_ui_manager_connect_proxy (GtkUIManager* _sender, GtkAction* action, GtkWidget* proxy, gpointer self) {
+	_lambda73_ (action, proxy, self);
 }
 
 
-static void _lambda71_ (GtkAction* action, GtkWidget* p, MainWindow* self) {
+static void _lambda74_ (GtkAction* action, GtkWidget* p, MainWindow* self) {
 	g_return_if_fail (action != NULL);
 	g_return_if_fail (p != NULL);
 	if (GTK_IS_MENU_ITEM (p)) {
+		GtkMenuItem* _tmp0_;
 		GtkMenuItem* proxy;
-		guint _tmp0_;
 		guint _tmp1_;
-		proxy = _g_object_ref0 (GTK_MENU_ITEM (p));
-		g_signal_parse_name ("select", GTK_TYPE_ITEM, &_tmp0_, NULL, FALSE);
-		g_signal_handlers_disconnect_matched ((GtkItem*) proxy, G_SIGNAL_MATCH_ID | G_SIGNAL_MATCH_FUNC | G_SIGNAL_MATCH_DATA, _tmp0_, 0, NULL, (GCallback) _main_window_on_menu_item_select_gtk_item_select, self);
-		g_signal_parse_name ("deselect", GTK_TYPE_ITEM, &_tmp1_, NULL, FALSE);
-		g_signal_handlers_disconnect_matched ((GtkItem*) proxy, G_SIGNAL_MATCH_ID | G_SIGNAL_MATCH_FUNC | G_SIGNAL_MATCH_DATA, _tmp1_, 0, NULL, (GCallback) _main_window_on_menu_item_deselect_gtk_item_deselect, self);
+		guint _tmp2_;
+		_tmp0_ = _g_object_ref0 (GTK_MENU_ITEM (p));
+		proxy = _tmp0_;
+		g_signal_parse_name ("select", GTK_TYPE_ITEM, &_tmp1_, NULL, FALSE);
+		g_signal_handlers_disconnect_matched ((GtkItem*) proxy, G_SIGNAL_MATCH_ID | G_SIGNAL_MATCH_FUNC | G_SIGNAL_MATCH_DATA, _tmp1_, 0, NULL, (GCallback) _main_window_on_menu_item_select_gtk_item_select, self);
+		g_signal_parse_name ("deselect", GTK_TYPE_ITEM, &_tmp2_, NULL, FALSE);
+		g_signal_handlers_disconnect_matched ((GtkItem*) proxy, G_SIGNAL_MATCH_ID | G_SIGNAL_MATCH_FUNC | G_SIGNAL_MATCH_DATA, _tmp2_, 0, NULL, (GCallback) _main_window_on_menu_item_deselect_gtk_item_deselect, self);
 		_g_object_unref0 (proxy);
 	}
 }
 
 
-static void __lambda71__gtk_ui_manager_disconnect_proxy (GtkUIManager* _sender, GtkAction* action, GtkWidget* proxy, gpointer self) {
-	_lambda71_ (action, proxy, self);
+static void __lambda74__gtk_ui_manager_disconnect_proxy (GtkUIManager* _sender, GtkAction* action, GtkWidget* proxy, gpointer self) {
+	_lambda74_ (action, proxy, self);
 }
 
 
 static void main_window_initialize_menubar_and_toolbar (MainWindow* self) {
+	const gchar* _tmp0_ = NULL;
+	const gchar* _tmp1_ = NULL;
+	GtkRecentAction* _tmp2_ = NULL;
 	GtkAction* recent_action;
-	GtkActionGroup* _tmp0_;
-	GtkActionGroup* _tmp1_;
-	GtkUIManager* _tmp2_;
-	GtkActionGroup* _tmp3_;
-	GtkActionGroup* _tmp4_;
+	GtkActionGroup* _tmp3_ = NULL;
+	LatexMenu* _tmp4_ = NULL;
+	GtkUIManager* _tmp5_ = NULL;
+	gchar* _tmp6_ = NULL;
+	gchar* path;
+	GtkAccelGroup* _tmp7_ = NULL;
+	GtkActionGroup* _tmp8_ = NULL;
+	GtkActionGroup* _tmp9_ = NULL;
 	GError * _inner_error_ = NULL;
 	g_return_if_fail (self != NULL);
-	recent_action = (GtkAction*) ((GtkRecentAction*) gtk_recent_action_new ("FileOpenRecent", _ ("Open _Recent"), _ ("Open recently used files"), ""));
+	_tmp0_ = _ ("Open _Recent");
+	_tmp1_ = _ ("Open recently used files");
+	_tmp2_ = (GtkRecentAction*) gtk_recent_action_new ("FileOpenRecent", _tmp0_, _tmp1_, "");
+	recent_action = (GtkAction*) _tmp2_;
 	main_window_configure_recent_chooser (self, GTK_RECENT_CHOOSER (recent_action));
-	self->priv->action_group = (_tmp0_ = gtk_action_group_new ("ActionGroup"), _g_object_unref0 (self->priv->action_group), _tmp0_);
+	_tmp3_ = gtk_action_group_new ("ActionGroup");
+	_g_object_unref0 (self->priv->action_group);
+	self->priv->action_group = _tmp3_;
 	gtk_action_group_set_translation_domain (self->priv->action_group, GETTEXT_PACKAGE);
 	gtk_action_group_add_actions (self->priv->action_group, MAIN_WINDOW_action_entries, G_N_ELEMENTS (MAIN_WINDOW_action_entries), self);
 	gtk_action_group_add_action (self->priv->action_group, recent_action);
 	gtk_action_group_add_toggle_actions (self->priv->action_group, MAIN_WINDOW_toggle_action_entries, G_N_ELEMENTS (MAIN_WINDOW_toggle_action_entries), self);
-	self->priv->latex_action_group = (_tmp1_ = (GtkActionGroup*) latex_menu_new (self), _g_object_unref0 (self->priv->latex_action_group), _tmp1_);
-	self->priv->ui_manager = (_tmp2_ = gtk_ui_manager_new (), _g_object_unref0 (self->priv->ui_manager), _tmp2_);
+	_tmp4_ = latex_menu_new (self);
+	_g_object_unref0 (self->priv->latex_action_group);
+	self->priv->latex_action_group = (GtkActionGroup*) _tmp4_;
+	_tmp5_ = gtk_ui_manager_new ();
+	_g_object_unref0 (self->priv->ui_manager);
+	self->priv->ui_manager = _tmp5_;
 	gtk_ui_manager_insert_action_group (self->priv->ui_manager, self->priv->action_group, 0);
 	gtk_ui_manager_insert_action_group (self->priv->ui_manager, self->priv->latex_action_group, 0);
-	{
-		char* path;
-		path = g_build_filename (DATA_DIR, "ui", "ui.xml", NULL);
-		gtk_ui_manager_add_ui_from_file (self->priv->ui_manager, path, &_inner_error_);
-		if (_inner_error_ != NULL) {
-			_g_free0 (path);
-			goto __catch3_g_error;
-		}
+	_tmp6_ = g_build_filename (DATA_DIR, "ui", "ui.xml", NULL);
+	path = _tmp6_;
+	gtk_ui_manager_add_ui_from_file (self->priv->ui_manager, path, &_inner_error_);
+	if (_inner_error_ != NULL) {
 		_g_free0 (path);
+		goto __catch3_g_error;
 	}
+	_g_free0 (path);
 	goto __finally3;
 	__catch3_g_error:
 	{
 		GError * err;
 		err = _inner_error_;
 		_inner_error_ = NULL;
-		{
-			g_error ("main_window.vala:500: %s", err->message);
-			_g_error_free0 (err);
-		}
+		g_error ("main_window.vala:506: %s", err->message);
+		_g_error_free0 (err);
 	}
 	__finally3:
 	if (_inner_error_ != NULL) {
@@ -1339,12 +1472,17 @@ static void main_window_initialize_menubar_and_toolbar (MainWindow* self) {
 		g_clear_error (&_inner_error_);
 		return;
 	}
-	gtk_window_add_accel_group ((GtkWindow*) self, gtk_ui_manager_get_accel_group (self->priv->ui_manager));
-	g_signal_connect_object (self->priv->ui_manager, "connect-proxy", (GCallback) __lambda70__gtk_ui_manager_connect_proxy, self, 0);
-	g_signal_connect_object (self->priv->ui_manager, "disconnect-proxy", (GCallback) __lambda71__gtk_ui_manager_disconnect_proxy, self, 0);
-	self->priv->documents_list_action_group = (_tmp3_ = gtk_action_group_new ("DocumentsListActions"), _g_object_unref0 (self->priv->documents_list_action_group), _tmp3_);
+	_tmp7_ = gtk_ui_manager_get_accel_group (self->priv->ui_manager);
+	gtk_window_add_accel_group ((GtkWindow*) self, _tmp7_);
+	g_signal_connect_object (self->priv->ui_manager, "connect-proxy", (GCallback) __lambda73__gtk_ui_manager_connect_proxy, self, 0);
+	g_signal_connect_object (self->priv->ui_manager, "disconnect-proxy", (GCallback) __lambda74__gtk_ui_manager_disconnect_proxy, self, 0);
+	_tmp8_ = gtk_action_group_new ("DocumentsListActions");
+	_g_object_unref0 (self->priv->documents_list_action_group);
+	self->priv->documents_list_action_group = _tmp8_;
 	gtk_ui_manager_insert_action_group (self->priv->ui_manager, self->priv->documents_list_action_group, 0);
-	self->priv->build_tools_action_group = (_tmp4_ = gtk_action_group_new ("BuildToolsActions"), _g_object_unref0 (self->priv->build_tools_action_group), _tmp4_);
+	_tmp9_ = gtk_action_group_new ("BuildToolsActions");
+	_g_object_unref0 (self->priv->build_tools_action_group);
+	self->priv->build_tools_action_group = _tmp9_;
 	gtk_ui_manager_insert_action_group (self->priv->ui_manager, self->priv->build_tools_action_group, 0);
 	main_window_update_build_tools_menu (self);
 	_g_object_unref0 (recent_action);
@@ -1352,13 +1490,21 @@ static void main_window_initialize_menubar_and_toolbar (MainWindow* self) {
 
 
 static void main_window_on_menu_item_select (MainWindow* self, GtkItem* proxy) {
+	GtkAction* _tmp0_ = NULL;
+	GtkAction* _tmp1_;
 	GtkAction* action;
+	const gchar* _tmp2_ = NULL;
 	g_return_if_fail (self != NULL);
 	g_return_if_fail (proxy != NULL);
-	action = _g_object_ref0 (gtk_activatable_get_related_action ((GtkActivatable*) GTK_MENU_ITEM (proxy)));
+	_tmp0_ = gtk_activatable_get_related_action ((GtkActivatable*) GTK_MENU_ITEM (proxy));
+	_tmp1_ = _g_object_ref0 (_tmp0_);
+	action = _tmp1_;
 	g_return_if_fail (action != NULL);
-	if (gtk_action_get_tooltip (action) != NULL) {
-		gtk_statusbar_push ((GtkStatusbar*) self->priv->statusbar, self->priv->tip_message_cid, gtk_action_get_tooltip (action));
+	_tmp2_ = gtk_action_get_tooltip (action);
+	if (_tmp2_ != NULL) {
+		const gchar* _tmp3_ = NULL;
+		_tmp3_ = gtk_action_get_tooltip (action);
+		gtk_statusbar_push ((GtkStatusbar*) self->priv->statusbar, self->priv->tip_message_cid, _tmp3_);
 	}
 	_g_object_unref0 (action);
 }
@@ -1372,30 +1518,50 @@ static void main_window_on_menu_item_deselect (MainWindow* self, GtkItem* proxy)
 
 
 static void main_window_show_or_hide_widgets (MainWindow* self) {
+	GSettings* _tmp0_ = NULL;
 	GSettings* settings;
+	gboolean _tmp1_;
 	gboolean show;
+	GtkAction* _tmp2_ = NULL;
+	GtkToggleAction* _tmp3_;
 	GtkToggleAction* action;
-	GtkToggleAction* _tmp0_;
-	GtkToggleAction* _tmp1_;
+	gboolean _tmp4_;
+	GtkAction* _tmp5_ = NULL;
+	GtkToggleAction* _tmp6_;
+	gboolean _tmp7_;
+	GtkAction* _tmp8_ = NULL;
+	GtkToggleAction* _tmp9_;
 	g_return_if_fail (self != NULL);
-	settings = g_settings_new ("org.gnome.latexila.preferences.ui");
-	show = g_settings_get_boolean (settings, "edit-toolbar-visible");
+	_tmp0_ = g_settings_new ("org.gnome.latexila.preferences.ui");
+	settings = _tmp0_;
+	_tmp1_ = g_settings_get_boolean (settings, "edit-toolbar-visible");
+	show = _tmp1_;
 	if (!show) {
 		gtk_widget_hide ((GtkWidget*) self->priv->edit_toolbar);
 	}
-	action = _g_object_ref0 (GTK_TOGGLE_ACTION (gtk_action_group_get_action (self->priv->action_group, "ViewEditToolbar")));
+	_tmp2_ = gtk_action_group_get_action (self->priv->action_group, "ViewEditToolbar");
+	_tmp3_ = _g_object_ref0 (GTK_TOGGLE_ACTION (_tmp2_));
+	action = _tmp3_;
 	gtk_toggle_action_set_active (action, show);
-	show = g_settings_get_boolean (settings, "side-panel-visible");
+	_tmp4_ = g_settings_get_boolean (settings, "side-panel-visible");
+	show = _tmp4_;
 	if (!show) {
 		gtk_widget_hide ((GtkWidget*) self->priv->side_panel);
 	}
-	action = (_tmp0_ = _g_object_ref0 (GTK_TOGGLE_ACTION (gtk_action_group_get_action (self->priv->action_group, "ViewSidePanel"))), _g_object_unref0 (action), _tmp0_);
+	_tmp5_ = gtk_action_group_get_action (self->priv->action_group, "ViewSidePanel");
+	_tmp6_ = _g_object_ref0 (GTK_TOGGLE_ACTION (_tmp5_));
+	_g_object_unref0 (action);
+	action = _tmp6_;
 	gtk_toggle_action_set_active (action, show);
-	show = g_settings_get_boolean (settings, "bottom-panel-visible");
+	_tmp7_ = g_settings_get_boolean (settings, "bottom-panel-visible");
+	show = _tmp7_;
 	if (!show) {
 		gtk_widget_hide ((GtkWidget*) self->priv->build_view);
 	}
-	action = (_tmp1_ = _g_object_ref0 (GTK_TOGGLE_ACTION (gtk_action_group_get_action (self->priv->action_group, "ViewBottomPanel"))), _g_object_unref0 (action), _tmp1_);
+	_tmp8_ = gtk_action_group_get_action (self->priv->action_group, "ViewBottomPanel");
+	_tmp9_ = _g_object_ref0 (GTK_TOGGLE_ACTION (_tmp8_));
+	_g_object_unref0 (action);
+	action = _tmp9_;
 	gtk_toggle_action_set_active (action, show);
 	_g_object_unref0 (action);
 	_g_object_unref0 (settings);
@@ -1404,52 +1570,44 @@ static void main_window_show_or_hide_widgets (MainWindow* self) {
 
 BuildView* main_window_get_build_view (MainWindow* self) {
 	BuildView* result = NULL;
+	BuildView* _tmp0_;
 	g_return_val_if_fail (self != NULL, NULL);
-	result = _g_object_ref0 (self->priv->build_view);
+	_tmp0_ = _g_object_ref0 (self->priv->build_view);
+	result = _tmp0_;
 	return result;
 }
 
 
 CustomStatusbar* main_window_get_statusbar (MainWindow* self) {
 	CustomStatusbar* result = NULL;
+	CustomStatusbar* _tmp0_;
 	g_return_val_if_fail (self != NULL, NULL);
-	result = _g_object_ref0 (self->priv->statusbar);
+	_tmp0_ = _g_object_ref0 (self->priv->statusbar);
+	result = _tmp0_;
 	return result;
 }
 
 
 Symbols* main_window_get_symbols (MainWindow* self) {
 	Symbols* result = NULL;
+	Symbols* _tmp0_;
 	g_return_val_if_fail (self != NULL, NULL);
-	result = _g_object_ref0 (self->priv->symbols);
+	_tmp0_ = _g_object_ref0 (self->priv->symbols);
+	result = _tmp0_;
 	return result;
 }
 
 
 FileBrowser* main_window_get_file_browser (MainWindow* self) {
 	FileBrowser* result = NULL;
+	FileBrowser* _tmp0_;
 	g_return_val_if_fail (self != NULL, NULL);
-	result = _g_object_ref0 (self->priv->file_browser);
+	_tmp0_ = _g_object_ref0 (self->priv->file_browser);
+	result = _tmp0_;
 	return result;
 }
 
 
-static void _lambda44_ (gint response_id, Block5Data* _data5_) {
-	MainWindow * self;
-	self = _data5_->self;
-	if (response_id == GTK_RESPONSE_YES) {
-		document_set_readonly (document_tab_get_document (_data5_->tab), FALSE);
-	}
-	gtk_object_destroy ((GtkObject*) _data5_->infobar);
-	gtk_widget_grab_focus ((GtkWidget*) document_tab_get_view (_data5_->tab));
-}
-
-
-static void __lambda44__gtk_info_bar_response (GtkInfoBar* _sender, gint response_id, gpointer self) {
-	_lambda44_ (response_id, self);
-}
-
-
 static Block5Data* block5_data_ref (Block5Data* _data5_) {
 	g_atomic_int_inc (&_data5_->_ref_count_);
 	return _data5_;
@@ -1466,152 +1624,164 @@ static void block5_data_unref (Block5Data* _data5_) {
 }
 
 
+static void _lambda45_ (gint response_id, Block5Data* _data5_) {
+	MainWindow * self;
+	DocumentView* _tmp1_ = NULL;
+	self = _data5_->self;
+	if (response_id == GTK_RESPONSE_YES) {
+		Document* _tmp0_ = NULL;
+		_tmp0_ = document_tab_get_document (_data5_->tab);
+		document_set_readonly (_tmp0_, FALSE);
+	}
+	gtk_object_destroy ((GtkObject*) _data5_->infobar);
+	_tmp1_ = document_tab_get_view (_data5_->tab);
+	gtk_widget_grab_focus ((GtkWidget*) _tmp1_);
+}
+
+
+static void __lambda45__gtk_info_bar_response (GtkInfoBar* _sender, gint response_id, gpointer self) {
+	_lambda45_ (response_id, self);
+}
+
+
 DocumentTab* main_window_open_document (MainWindow* self, GFile* location) {
 	DocumentTab* result = NULL;
+	Application* _tmp0_ = NULL;
+	Application* _tmp1_;
+	GList* _tmp2_ = NULL;
+	GList* _tmp3_;
+	DocumentTab* _tmp25_ = NULL;
 	g_return_val_if_fail (self != NULL, NULL);
 	g_return_val_if_fail (location != NULL, NULL);
+	_tmp0_ = application_get_default ();
+	_tmp1_ = _tmp0_;
+	_tmp2_ = application_get_windows (_tmp1_);
+	_tmp3_ = _tmp2_;
+	_g_object_unref0 (_tmp1_);
 	{
-		Application* _tmp0_;
-		GList* _tmp1_;
 		GList* w_collection;
 		GList* w_it;
-		w_collection = (_tmp1_ = application_get_windows (_tmp0_ = application_get_default ()), _g_object_unref0 (_tmp0_), _tmp1_);
+		w_collection = _tmp3_;
 		for (w_it = w_collection; w_it != NULL; w_it = w_it->next) {
+			MainWindow* _tmp4_;
 			MainWindow* w;
-			w = _g_object_ref0 ((MainWindow*) w_it->data);
+			_tmp4_ = _g_object_ref0 ((MainWindow*) w_it->data);
+			w = _tmp4_;
 			{
+				GList* _tmp5_ = NULL;
+				_tmp5_ = main_window_get_documents (w);
 				{
 					GList* doc_collection;
 					GList* doc_it;
-					doc_collection = main_window_get_documents (w);
+					doc_collection = _tmp5_;
 					for (doc_it = doc_collection; doc_it != NULL; doc_it = doc_it->next) {
+						Document* _tmp6_;
 						Document* doc;
-						doc = _g_object_ref0 ((Document*) doc_it->data);
+						_tmp6_ = _g_object_ref0 ((Document*) doc_it->data);
+						doc = _tmp6_;
 						{
-							gboolean _tmp2_ = FALSE;
-							if (document_get_location (doc) != NULL) {
-								_tmp2_ = g_file_equal (location, document_get_location (doc));
+							gboolean _tmp7_ = FALSE;
+							GFile* _tmp8_ = NULL;
+							_tmp8_ = document_get_location (doc);
+							if (_tmp8_ != NULL) {
+								GFile* _tmp9_ = NULL;
+								gboolean _tmp10_;
+								_tmp9_ = document_get_location (doc);
+								_tmp10_ = g_file_equal (location, _tmp9_);
+								_tmp7_ = _tmp10_;
 							} else {
-								_tmp2_ = FALSE;
+								_tmp7_ = FALSE;
 							}
-							if (_tmp2_) {
+							if (_tmp7_) {
 								Block5Data* _data5_;
-								char* _tmp3_;
-								char* _tmp4_;
-								char* primary_msg;
-								char* secondary_msg;
+								DocumentTab* _tmp12_ = NULL;
+								Document* _tmp13_ = NULL;
+								const gchar* _tmp14_ = NULL;
+								gchar* _tmp15_ = NULL;
+								gchar* _tmp16_;
+								gchar* _tmp17_ = NULL;
+								gchar* _tmp18_;
+								gchar* primary_msg;
+								const gchar* _tmp19_ = NULL;
+								gchar* _tmp20_;
+								gchar* secondary_msg;
+								TabInfoBar* _tmp21_ = NULL;
+								const gchar* _tmp22_ = NULL;
+								const gchar* _tmp23_ = NULL;
+								DocumentTab* _tmp24_;
 								_data5_ = g_slice_new0 (Block5Data);
 								_data5_->_ref_count_ = 1;
 								_data5_->self = g_object_ref (self);
 								if (self == w) {
+									DocumentTab* _tmp11_;
 									main_window_set_active_tab (self, doc->tab);
-									result = _g_object_ref0 (doc->tab);
+									_tmp11_ = _g_object_ref0 (doc->tab);
+									result = _tmp11_;
 									block5_data_unref (_data5_);
+									_data5_ = NULL;
 									_g_object_unref0 (doc);
-									__g_list_free_g_object_unref0 (doc_collection);
+									__g_list_free__g_object_unref0_0 (doc_collection);
 									_g_object_unref0 (w);
 									return result;
 								}
-								_data5_->tab = main_window_create_tab_from_location (self, location, TRUE);
-								document_set_readonly (document_tab_get_document (_data5_->tab), TRUE);
-								primary_msg = (_tmp4_ = g_strdup_printf (_ ("This file (%s) is already opened in another LaTeXila window."), _tmp3_ = g_file_get_parse_name (location)), _g_free0 (_tmp3_), _tmp4_);
-								secondary_msg = g_strdup (_ ("LaTeXila opened this instance of the file in a non-editable way. Do yo" \
-"u want to edit it anyway?"));
-								_data5_->infobar = (GtkInfoBar*) document_tab_add_message (_data5_->tab, primary_msg, secondary_msg, GTK_MESSAGE_WARNING);
-								gtk_info_bar_add_button (_data5_->infobar, _ ("Edit Anyway"), (gint) GTK_RESPONSE_YES);
-								gtk_info_bar_add_button (_data5_->infobar, _ ("Don't Edit"), (gint) GTK_RESPONSE_NO);
-								g_signal_connect_data (_data5_->infobar, "response", (GCallback) __lambda44__gtk_info_bar_response, block5_data_ref (_data5_), (GClosureNotify) block5_data_unref, 0);
-								result = _g_object_ref0 (_data5_->tab);
+								_tmp12_ = main_window_create_tab_from_location (self, location, TRUE);
+								_data5_->tab = _tmp12_;
+								_tmp13_ = document_tab_get_document (_data5_->tab);
+								document_set_readonly (_tmp13_, TRUE);
+								_tmp14_ = _ ("This file (%s) is already opened in another LaTeXila window.");
+								_tmp15_ = g_file_get_parse_name (location);
+								_tmp16_ = _tmp15_;
+								_tmp17_ = g_strdup_printf (_tmp14_, _tmp16_);
+								_tmp18_ = _tmp17_;
+								_g_free0 (_tmp16_);
+								primary_msg = _tmp18_;
+								_tmp19_ = _ ("LaTeXila opened this instance of the file in a non-editable way. Do yo" \
+"u want to edit it anyway?");
+								_tmp20_ = g_strdup (_tmp19_);
+								secondary_msg = _tmp20_;
+								_tmp21_ = document_tab_add_message (_data5_->tab, primary_msg, secondary_msg, GTK_MESSAGE_WARNING);
+								_data5_->infobar = (GtkInfoBar*) _tmp21_;
+								_tmp22_ = _ ("Edit Anyway");
+								gtk_info_bar_add_button (_data5_->infobar, _tmp22_, (gint) GTK_RESPONSE_YES);
+								_tmp23_ = _ ("Don't Edit");
+								gtk_info_bar_add_button (_data5_->infobar, _tmp23_, (gint) GTK_RESPONSE_NO);
+								g_signal_connect_data (_data5_->infobar, "response", (GCallback) __lambda45__gtk_info_bar_response, block5_data_ref (_data5_), (GClosureNotify) block5_data_unref, 0);
+								_tmp24_ = _g_object_ref0 (_data5_->tab);
+								result = _tmp24_;
 								_g_free0 (secondary_msg);
 								_g_free0 (primary_msg);
 								block5_data_unref (_data5_);
+								_data5_ = NULL;
 								_g_object_unref0 (doc);
-								__g_list_free_g_object_unref0 (doc_collection);
+								__g_list_free__g_object_unref0_0 (doc_collection);
 								_g_object_unref0 (w);
 								return result;
 							}
 							_g_object_unref0 (doc);
 						}
 					}
-					__g_list_free_g_object_unref0 (doc_collection);
+					__g_list_free__g_object_unref0_0 (doc_collection);
 				}
 				_g_object_unref0 (w);
 			}
 		}
 	}
-	result = main_window_create_tab_from_location (self, location, TRUE);
+	_tmp25_ = main_window_create_tab_from_location (self, location, TRUE);
+	result = _tmp25_;
 	return result;
 }
 
 
-static void _vala_array_add1 (guint** array, int* length, int* size, guint value) {
-	if ((*length) == (*size)) {
-		*size = (*size) ? (2 * (*size)) : 4;
-		*array = g_renew (guint, *array, *size);
-	}
-	(*array)[(*length)++] = value;
-}
-
-
-static gboolean _vala_uint_array_contains (guint* stack, int stack_length, guint needle) {
-	int i;
-	for (i = 0; i < stack_length; i++) {
-		if (needle == stack[i]) {
-			return TRUE;
-		}
-	}
-	return FALSE;
-}
-
-
 DocumentTab* main_window_create_tab (MainWindow* self, gboolean jump_to) {
 	DocumentTab* result = NULL;
+	DocumentTab* _tmp0_ = NULL;
 	DocumentTab* tab;
-	gint all_nums_length1;
-	gint _all_nums_size_;
-	guint* _tmp1_;
-	guint* _tmp0_ = NULL;
-	guint* all_nums;
-	guint num = 0U;
+	DocumentTab* _tmp1_ = NULL;
 	g_return_val_if_fail (self != NULL, NULL);
-	tab = g_object_ref_sink (document_tab_new ());
-	all_nums = (_tmp1_ = (_tmp0_ = g_new0 (guint, 0), _tmp0_), all_nums_length1 = 0, _all_nums_size_ = all_nums_length1, _tmp1_);
-	{
-		Application* _tmp2_;
-		GList* _tmp3_;
-		GList* doc_collection;
-		GList* doc_it;
-		doc_collection = (_tmp3_ = application_get_documents (_tmp2_ = application_get_default ()), _g_object_unref0 (_tmp2_), _tmp3_);
-		for (doc_it = doc_collection; doc_it != NULL; doc_it = doc_it->next) {
-			Document* doc;
-			doc = _g_object_ref0 ((Document*) doc_it->data);
-			{
-				if (document_get_location (doc) == NULL) {
-					_vala_array_add1 (&all_nums, &all_nums_length1, &_all_nums_size_, document_get_unsaved_document_n (doc));
-				}
-				_g_object_unref0 (doc);
-			}
-		}
-		__g_list_free_g_object_unref0 (doc_collection);
-	}
-	{
-		gboolean _tmp4_;
-		num = (guint) 1;
-		_tmp4_ = TRUE;
-		while (TRUE) {
-			if (!_tmp4_) {
-				num++;
-			}
-			_tmp4_ = FALSE;
-			if (!_vala_uint_array_contains (all_nums, all_nums_length1, num)) {
-				break;
-			}
-			;
-		}
-	}
-	document_set_unsaved_document_n (document_tab_get_document (tab), num);
-	result = main_window_process_create_tab (self, tab, jump_to);
-	all_nums = (g_free (all_nums), NULL);
+	_tmp0_ = document_tab_new ();
+	tab = g_object_ref_sink (_tmp0_);
+	_tmp1_ = main_window_process_create_tab (self, tab, jump_to);
+	result = _tmp1_;
 	_g_object_unref0 (tab);
 	return result;
 }
@@ -1619,28 +1789,51 @@ DocumentTab* main_window_create_tab (MainWindow* self, gboolean jump_to) {
 
 DocumentTab* main_window_create_tab_from_location (MainWindow* self, GFile* location, gboolean jump_to) {
 	DocumentTab* result = NULL;
+	DocumentTab* _tmp0_ = NULL;
 	DocumentTab* tab;
+	DocumentTab* _tmp1_ = NULL;
 	g_return_val_if_fail (self != NULL, NULL);
 	g_return_val_if_fail (location != NULL, NULL);
-	tab = g_object_ref_sink (document_tab_new_from_location (location));
-	result = main_window_process_create_tab (self, tab, jump_to);
+	_tmp0_ = document_tab_new_from_location (location);
+	tab = g_object_ref_sink (_tmp0_);
+	_tmp1_ = main_window_process_create_tab (self, tab, jump_to);
+	result = _tmp1_;
 	_g_object_unref0 (tab);
 	return result;
 }
 
 
 void main_window_create_tab_with_view (MainWindow* self, DocumentView* view) {
+	DocumentTab* _tmp0_ = NULL;
 	DocumentTab* tab;
-	DocumentTab* _tmp0_;
+	DocumentTab* _tmp1_ = NULL;
+	DocumentTab* _tmp2_;
 	g_return_if_fail (self != NULL);
 	g_return_if_fail (view != NULL);
-	tab = g_object_ref_sink (document_tab_new_with_view (view));
-	_tmp0_ = main_window_process_create_tab (self, tab, TRUE);
-	_g_object_unref0 (_tmp0_);
+	_tmp0_ = document_tab_new_with_view (view);
+	tab = g_object_ref_sink (_tmp0_);
+	_tmp1_ = main_window_process_create_tab (self, tab, TRUE);
+	_tmp2_ = _tmp1_;
+	_g_object_unref0 (_tmp2_);
 	_g_object_unref0 (tab);
 }
 
 
+static Block6Data* block6_data_ref (Block6Data* _data6_) {
+	g_atomic_int_inc (&_data6_->_ref_count_);
+	return _data6_;
+}
+
+
+static void block6_data_unref (Block6Data* _data6_) {
+	if (g_atomic_int_dec_and_test (&_data6_->_ref_count_)) {
+		_g_object_unref0 (_data6_->self);
+		_g_object_unref0 (_data6_->tab);
+		g_slice_free (Block6Data, _data6_);
+	}
+}
+
+
 static void _lambda37_ (Block6Data* _data6_) {
 	MainWindow * self;
 	self = _data6_->self;
@@ -1655,8 +1848,10 @@ static void __lambda37__document_tab_close_document (DocumentTab* _sender, gpoin
 
 static void _lambda38_ (Block6Data* _data6_) {
 	MainWindow * self;
+	DocumentTab* _tmp0_ = NULL;
 	self = _data6_->self;
-	if (_data6_->tab != main_window_get_active_tab (self)) {
+	_tmp0_ = main_window_get_active_tab (self);
+	if (_data6_->tab != _tmp0_) {
 		return;
 	}
 	main_window_set_undo_sensitivity (self);
@@ -1670,8 +1865,10 @@ static void __lambda38__g_object_notify (GObject* _sender, GParamSpec* pspec, gp
 
 static void _lambda39_ (Block6Data* _data6_) {
 	MainWindow * self;
+	DocumentTab* _tmp0_ = NULL;
 	self = _data6_->self;
-	if (_data6_->tab != main_window_get_active_tab (self)) {
+	_tmp0_ = main_window_get_active_tab (self);
+	if (_data6_->tab != _tmp0_) {
 		return;
 	}
 	main_window_set_redo_sensitivity (self);
@@ -1685,8 +1882,10 @@ static void __lambda39__g_object_notify (GObject* _sender, GParamSpec* pspec, gp
 
 static void _lambda40_ (Block6Data* _data6_) {
 	MainWindow * self;
+	DocumentTab* _tmp0_ = NULL;
 	self = _data6_->self;
-	if (_data6_->tab != main_window_get_active_tab (self)) {
+	_tmp0_ = main_window_get_active_tab (self);
+	if (_data6_->tab != _tmp0_) {
 		return;
 	}
 	main_window_selection_changed (self);
@@ -1711,14 +1910,12 @@ static void __lambda41__g_object_notify (GObject* _sender, GParamSpec* pspec, gp
 }
 
 
-static void _lambda42_ (Block6Data* _data6_) {
-	MainWindow * self;
-	self = _data6_->self;
-	main_window_sync_name (self, _data6_->tab);
+static void _lambda42_ (MainWindow* self) {
+	main_window_update_build_tools_sensitivity (self);
 }
 
 
-static void __lambda42__gtk_text_buffer_modified_changed (GtkTextBuffer* _sender, gpointer self) {
+static void __lambda42__g_object_notify (GObject* _sender, GParamSpec* pspec, gpointer self) {
 	_lambda42_ (self);
 }
 
@@ -1730,34 +1927,41 @@ static void _lambda43_ (Block6Data* _data6_) {
 }
 
 
-static void __lambda43__g_object_notify (GObject* _sender, GParamSpec* pspec, gpointer self) {
+static void __lambda43__gtk_text_buffer_modified_changed (GtkTextBuffer* _sender, gpointer self) {
 	_lambda43_ (self);
 }
 
 
-static void _main_window_update_cursor_position_statusbar_document_cursor_moved (Document* _sender, gpointer self) {
-	main_window_update_cursor_position_statusbar (self);
+static void _lambda44_ (Block6Data* _data6_) {
+	MainWindow * self;
+	self = _data6_->self;
+	main_window_sync_name (self, _data6_->tab);
 }
 
 
-static Block6Data* block6_data_ref (Block6Data* _data6_) {
-	g_atomic_int_inc (&_data6_->_ref_count_);
-	return _data6_;
+static void __lambda44__g_object_notify (GObject* _sender, GParamSpec* pspec, gpointer self) {
+	_lambda44_ (self);
 }
 
 
-static void block6_data_unref (Block6Data* _data6_) {
-	if (g_atomic_int_dec_and_test (&_data6_->_ref_count_)) {
-		_g_object_unref0 (_data6_->self);
-		_g_object_unref0 (_data6_->tab);
-		g_slice_free (Block6Data, _data6_);
-	}
+static void _main_window_update_cursor_position_statusbar_document_cursor_moved (Document* _sender, gpointer self) {
+	main_window_update_cursor_position_statusbar (self);
 }
 
 
 static DocumentTab* main_window_process_create_tab (MainWindow* self, DocumentTab* tab, gboolean jump_to) {
 	DocumentTab* result = NULL;
 	Block6Data* _data6_;
+	Document* _tmp0_ = NULL;
+	Document* _tmp1_ = NULL;
+	Document* _tmp2_ = NULL;
+	Document* _tmp3_ = NULL;
+	Document* _tmp4_ = NULL;
+	Document* _tmp5_ = NULL;
+	Document* _tmp6_ = NULL;
+	Document* _tmp7_ = NULL;
+	gboolean _tmp8_;
+	DocumentTab* _tmp9_;
 	g_return_val_if_fail (self != NULL, NULL);
 	_data6_ = g_slice_new0 (Block6Data);
 	_data6_->_ref_count_ = 1;
@@ -1766,26 +1970,39 @@ static DocumentTab* main_window_process_create_tab (MainWindow* self, DocumentTa
 	if (_data6_->tab == NULL) {
 		result = NULL;
 		block6_data_unref (_data6_);
+		_data6_ = NULL;
 		return result;
 	}
 	g_signal_connect_data (_data6_->tab, "close-document", (GCallback) __lambda37__document_tab_close_document, block6_data_ref (_data6_), (GClosureNotify) block6_data_unref, 0);
-	g_signal_connect_data ((GObject*) document_tab_get_document (_data6_->tab), "notify::can-undo", (GCallback) __lambda38__g_object_notify, block6_data_ref (_data6_), (GClosureNotify) block6_data_unref, 0);
-	g_signal_connect_data ((GObject*) document_tab_get_document (_data6_->tab), "notify::can-redo", (GCallback) __lambda39__g_object_notify, block6_data_ref (_data6_), (GClosureNotify) block6_data_unref, 0);
-	g_signal_connect_data ((GObject*) document_tab_get_document (_data6_->tab), "notify::has-selection", (GCallback) __lambda40__g_object_notify, block6_data_ref (_data6_), (GClosureNotify) block6_data_unref, 0);
-	g_signal_connect_data ((GObject*) document_tab_get_document (_data6_->tab), "notify::location", (GCallback) __lambda41__g_object_notify, block6_data_ref (_data6_), (GClosureNotify) block6_data_unref, 0);
-	g_signal_connect_data ((GtkTextBuffer*) document_tab_get_document (_data6_->tab), "modified-changed", (GCallback) __lambda42__gtk_text_buffer_modified_changed, block6_data_ref (_data6_), (GClosureNotify) block6_data_unref, 0);
-	g_signal_connect_data ((GObject*) document_tab_get_document (_data6_->tab), "notify::readonly", (GCallback) __lambda43__g_object_notify, block6_data_ref (_data6_), (GClosureNotify) block6_data_unref, 0);
-	g_signal_connect_object (document_tab_get_document (_data6_->tab), "cursor-moved", (GCallback) _main_window_update_cursor_position_statusbar_document_cursor_moved, self, 0);
+	_tmp0_ = document_tab_get_document (_data6_->tab);
+	g_signal_connect_data ((GObject*) _tmp0_, "notify::can-undo", (GCallback) __lambda38__g_object_notify, block6_data_ref (_data6_), (GClosureNotify) block6_data_unref, 0);
+	_tmp1_ = document_tab_get_document (_data6_->tab);
+	g_signal_connect_data ((GObject*) _tmp1_, "notify::can-redo", (GCallback) __lambda39__g_object_notify, block6_data_ref (_data6_), (GClosureNotify) block6_data_unref, 0);
+	_tmp2_ = document_tab_get_document (_data6_->tab);
+	g_signal_connect_data ((GObject*) _tmp2_, "notify::has-selection", (GCallback) __lambda40__g_object_notify, block6_data_ref (_data6_), (GClosureNotify) block6_data_unref, 0);
+	_tmp3_ = document_tab_get_document (_data6_->tab);
+	g_signal_connect_data ((GObject*) _tmp3_, "notify::location", (GCallback) __lambda41__g_object_notify, block6_data_ref (_data6_), (GClosureNotify) block6_data_unref, 0);
+	_tmp4_ = document_tab_get_document (_data6_->tab);
+	g_signal_connect_object ((GObject*) _tmp4_, "notify::project-id", (GCallback) __lambda42__g_object_notify, self, 0);
+	_tmp5_ = document_tab_get_document (_data6_->tab);
+	g_signal_connect_data ((GtkTextBuffer*) _tmp5_, "modified-changed", (GCallback) __lambda43__gtk_text_buffer_modified_changed, block6_data_ref (_data6_), (GClosureNotify) block6_data_unref, 0);
+	_tmp6_ = document_tab_get_document (_data6_->tab);
+	g_signal_connect_data ((GObject*) _tmp6_, "notify::readonly", (GCallback) __lambda44__g_object_notify, block6_data_ref (_data6_), (GClosureNotify) block6_data_unref, 0);
+	_tmp7_ = document_tab_get_document (_data6_->tab);
+	g_signal_connect_object (_tmp7_, "cursor-moved", (GCallback) _main_window_update_cursor_position_statusbar_document_cursor_moved, self, 0);
 	gtk_widget_show ((GtkWidget*) _data6_->tab);
 	documents_panel_add_tab (self->priv->documents_panel, _data6_->tab, -1, jump_to);
 	main_window_set_undo_sensitivity (self);
 	main_window_set_redo_sensitivity (self);
 	main_window_selection_changed (self);
-	if (!gtk_widget_get_visible ((GtkWidget*) self)) {
+	_tmp8_ = gtk_widget_get_visible ((GtkWidget*) self);
+	if (!_tmp8_) {
 		gtk_window_present ((GtkWindow*) self);
 	}
-	result = _g_object_ref0 (_data6_->tab);
+	_tmp9_ = _g_object_ref0 (_data6_->tab);
+	result = _tmp9_;
 	block6_data_unref (_data6_);
+	_data6_ = NULL;
 	return result;
 }
 
@@ -1796,27 +2013,49 @@ gboolean main_window_close_tab (MainWindow* self, DocumentTab* tab, gboolean for
 	g_return_val_if_fail (self != NULL, FALSE);
 	g_return_val_if_fail (tab != NULL, FALSE);
 	if (!force_close) {
-		_tmp0_ = document_get_modified (document_tab_get_document (tab));
+		Document* _tmp1_ = NULL;
+		gboolean _tmp2_;
+		_tmp1_ = document_tab_get_document (tab);
+		_tmp2_ = document_get_modified (_tmp1_);
+		_tmp0_ = _tmp2_;
 	} else {
 		_tmp0_ = FALSE;
 	}
 	if (_tmp0_) {
+		const gchar* _tmp3_ = NULL;
+		const gchar* _tmp4_ = NULL;
+		GtkMessageDialog* _tmp5_ = NULL;
 		GtkMessageDialog* dialog;
-		dialog = g_object_ref_sink ((GtkMessageDialog*) gtk_message_dialog_new ((GtkWindow*) self, GTK_DIALOG_DESTROY_WITH_PARENT, GTK_MESSAGE_QUESTION, GTK_BUTTONS_NONE, _ ("Save changes to document \"%s\" before closing?"), document_tab_get_label_text (tab)));
-		gtk_dialog_add_buttons ((GtkDialog*) dialog, _ ("Close without Saving"), GTK_RESPONSE_CLOSE, GTK_STOCK_CANCEL, GTK_RESPONSE_CANCEL, NULL);
-		if (document_get_location (document_tab_get_document (tab)) == NULL) {
+		const gchar* _tmp6_ = NULL;
+		Document* _tmp7_ = NULL;
+		GFile* _tmp8_ = NULL;
+		_tmp3_ = _ ("Save changes to document \"%s\" before closing?");
+		_tmp4_ = document_tab_get_label_text (tab);
+		_tmp5_ = (GtkMessageDialog*) gtk_message_dialog_new ((GtkWindow*) self, GTK_DIALOG_DESTROY_WITH_PARENT, GTK_MESSAGE_QUESTION, GTK_BUTTONS_NONE, _tmp3_, _tmp4_);
+		dialog = g_object_ref_sink (_tmp5_);
+		_tmp6_ = _ ("Close without Saving");
+		gtk_dialog_add_buttons ((GtkDialog*) dialog, _tmp6_, GTK_RESPONSE_CLOSE, GTK_STOCK_CANCEL, GTK_RESPONSE_CANCEL, NULL);
+		_tmp7_ = document_tab_get_document (tab);
+		_tmp8_ = document_get_location (_tmp7_);
+		if (_tmp8_ == NULL) {
 			gtk_dialog_add_button ((GtkDialog*) dialog, GTK_STOCK_SAVE_AS, (gint) GTK_RESPONSE_ACCEPT);
 		} else {
 			gtk_dialog_add_button ((GtkDialog*) dialog, GTK_STOCK_SAVE, (gint) GTK_RESPONSE_ACCEPT);
 		}
 		while (TRUE) {
+			gint _tmp9_;
 			gint res;
-			res = gtk_dialog_run ((GtkDialog*) dialog);
+			_tmp9_ = gtk_dialog_run ((GtkDialog*) dialog);
+			res = _tmp9_;
 			if (res == GTK_RESPONSE_CLOSE) {
 				break;
 			} else {
 				if (res == GTK_RESPONSE_ACCEPT) {
-					if (main_window_save_document (self, document_tab_get_document (tab), FALSE)) {
+					Document* _tmp10_ = NULL;
+					gboolean _tmp11_;
+					_tmp10_ = document_tab_get_document (tab);
+					_tmp11_ = main_window_save_document (self, _tmp10_, FALSE);
+					if (_tmp11_) {
 						break;
 					}
 					continue;
@@ -1839,26 +2078,36 @@ gboolean main_window_close_tab (MainWindow* self, DocumentTab* tab, gboolean for
 
 DocumentTab* main_window_get_tab_from_location (MainWindow* self, GFile* location) {
 	DocumentTab* result = NULL;
+	GList* _tmp0_ = NULL;
 	g_return_val_if_fail (self != NULL, NULL);
 	g_return_val_if_fail (location != NULL, NULL);
+	_tmp0_ = main_window_get_documents (self);
 	{
 		GList* doc_collection;
 		GList* doc_it;
-		doc_collection = main_window_get_documents (self);
+		doc_collection = _tmp0_;
 		for (doc_it = doc_collection; doc_it != NULL; doc_it = doc_it->next) {
+			Document* _tmp1_;
 			Document* doc;
-			doc = _g_object_ref0 ((Document*) doc_it->data);
+			_tmp1_ = _g_object_ref0 ((Document*) doc_it->data);
+			doc = _tmp1_;
 			{
-				if (g_file_equal (location, document_get_location (doc))) {
-					result = _g_object_ref0 (doc->tab);
+				GFile* _tmp2_ = NULL;
+				gboolean _tmp3_;
+				_tmp2_ = document_get_location (doc);
+				_tmp3_ = g_file_equal (location, _tmp2_);
+				if (_tmp3_) {
+					DocumentTab* _tmp4_;
+					_tmp4_ = _g_object_ref0 (doc->tab);
+					result = _tmp4_;
 					_g_object_unref0 (doc);
-					__g_list_free_g_object_unref0 (doc_collection);
+					__g_list_free__g_object_unref0_0 (doc_collection);
 					return result;
 				}
 				_g_object_unref0 (doc);
 			}
 		}
-		__g_list_free_g_object_unref0 (doc_collection);
+		__g_list_free__g_object_unref0_0 (doc_collection);
 	}
 	result = NULL;
 	return result;
@@ -1867,27 +2116,49 @@ DocumentTab* main_window_get_tab_from_location (MainWindow* self, GFile* locatio
 
 gboolean main_window_is_on_workspace_screen (MainWindow* self, GdkScreen* screen, guint workspace) {
 	gboolean result = FALSE;
+	gboolean _tmp11_;
+	guint _tmp12_;
 	guint ws;
-	gboolean _tmp1_ = FALSE;
+	gboolean _tmp13_ = FALSE;
 	g_return_val_if_fail (self != NULL, FALSE);
 	if (screen != NULL) {
-		char* cur_name;
+		GdkDisplay* _tmp0_ = NULL;
+		const gchar* _tmp1_ = NULL;
+		gchar* _tmp2_;
+		gchar* cur_name;
+		gint _tmp3_;
 		gint cur_n;
+		GdkScreen* _tmp4_ = NULL;
+		GdkScreen* _tmp5_;
 		GdkScreen* s;
-		char* name;
+		GdkDisplay* _tmp6_ = NULL;
+		const gchar* _tmp7_ = NULL;
+		gchar* _tmp8_;
+		gchar* name;
+		gint _tmp9_;
 		gint n;
-		gboolean _tmp0_ = FALSE;
-		cur_name = g_strdup (gdk_display_get_name (gdk_screen_get_display (screen)));
-		cur_n = gdk_screen_get_number (screen);
-		s = _g_object_ref0 (gtk_window_get_screen ((GtkWindow*) self));
-		name = g_strdup (gdk_display_get_name (gdk_screen_get_display (s)));
-		n = gdk_screen_get_number (s);
-		if (_vala_strcmp0 (cur_name, name) != 0) {
-			_tmp0_ = TRUE;
+		gboolean _tmp10_ = FALSE;
+		_tmp0_ = gdk_screen_get_display (screen);
+		_tmp1_ = gdk_display_get_name (_tmp0_);
+		_tmp2_ = g_strdup (_tmp1_);
+		cur_name = _tmp2_;
+		_tmp3_ = gdk_screen_get_number (screen);
+		cur_n = _tmp3_;
+		_tmp4_ = gtk_window_get_screen ((GtkWindow*) self);
+		_tmp5_ = _g_object_ref0 (_tmp4_);
+		s = _tmp5_;
+		_tmp6_ = gdk_screen_get_display (s);
+		_tmp7_ = gdk_display_get_name (_tmp6_);
+		_tmp8_ = g_strdup (_tmp7_);
+		name = _tmp8_;
+		_tmp9_ = gdk_screen_get_number (s);
+		n = _tmp9_;
+		if (g_strcmp0 (cur_name, name) != 0) {
+			_tmp10_ = TRUE;
 		} else {
-			_tmp0_ = cur_n != n;
+			_tmp10_ = cur_n != n;
 		}
-		if (_tmp0_) {
+		if (_tmp10_) {
 			result = FALSE;
 			_g_free0 (name);
 			_g_object_unref0 (s);
@@ -1898,65 +2169,73 @@ gboolean main_window_is_on_workspace_screen (MainWindow* self, GdkScreen* screen
 		_g_object_unref0 (s);
 		_g_free0 (cur_name);
 	}
-	if (!gtk_widget_get_realized ((GtkWidget*) self)) {
+	_tmp11_ = gtk_widget_get_realized ((GtkWidget*) self);
+	if (!_tmp11_) {
 		gtk_widget_realize ((GtkWidget*) self);
 	}
-	ws = utils_get_window_workspace ((GtkWindow*) self);
+	_tmp12_ = utils_get_window_workspace ((GtkWindow*) self);
+	ws = _tmp12_;
 	if (ws == workspace) {
-		_tmp1_ = TRUE;
+		_tmp13_ = TRUE;
 	} else {
-		_tmp1_ = ws == UTILS_ALL_WORKSPACES;
+		_tmp13_ = ws == UTILS_ALL_WORKSPACES;
 	}
-	result = _tmp1_;
+	result = _tmp13_;
 	return result;
 }
 
 
-static char* string_replace (const char* self, const char* old, const char* replacement) {
-	char* result = NULL;
+static gchar* string_replace (const gchar* self, const gchar* old, const gchar* replacement) {
+	gchar* result = NULL;
+	gchar* _tmp0_ = NULL;
+	gchar* _tmp1_;
+	GRegex* _tmp2_ = NULL;
+	GRegex* _tmp3_;
+	GRegex* regex;
+	gchar* _tmp4_ = NULL;
+	gchar* _tmp5_;
 	GError * _inner_error_ = NULL;
 	g_return_val_if_fail (self != NULL, NULL);
 	g_return_val_if_fail (old != NULL, NULL);
 	g_return_val_if_fail (replacement != NULL, NULL);
-	{
-		char* _tmp0_;
-		GRegex* _tmp1_;
-		GRegex* regex;
-		char* _tmp2_;
-		regex = (_tmp1_ = g_regex_new (_tmp0_ = g_regex_escape_string (old, -1), 0, 0, &_inner_error_), _g_free0 (_tmp0_), _tmp1_);
-		if (_inner_error_ != NULL) {
-			if (_inner_error_->domain == G_REGEX_ERROR) {
-				goto __catch4_g_regex_error;
-			}
-			g_critical ("file %s: line %d: unexpected error: %s (%s, %d)", __FILE__, __LINE__, _inner_error_->message, g_quark_to_string (_inner_error_->domain), _inner_error_->code);
-			g_clear_error (&_inner_error_);
-			return NULL;
+	_tmp0_ = g_regex_escape_string (old, -1);
+	_tmp1_ = _tmp0_;
+	_tmp2_ = g_regex_new (_tmp1_, 0, 0, &_inner_error_);
+	_tmp3_ = _tmp2_;
+	_g_free0 (_tmp1_);
+	regex = _tmp3_;
+	if (_inner_error_ != NULL) {
+		if (_inner_error_->domain == G_REGEX_ERROR) {
+			goto __catch4_g_regex_error;
 		}
-		_tmp2_ = g_regex_replace_literal (regex, self, (gssize) (-1), 0, replacement, 0, &_inner_error_);
-		if (_inner_error_ != NULL) {
-			_g_regex_unref0 (regex);
-			if (_inner_error_->domain == G_REGEX_ERROR) {
-				goto __catch4_g_regex_error;
-			}
-			_g_regex_unref0 (regex);
-			g_critical ("file %s: line %d: unexpected error: %s (%s, %d)", __FILE__, __LINE__, _inner_error_->message, g_quark_to_string (_inner_error_->domain), _inner_error_->code);
-			g_clear_error (&_inner_error_);
-			return NULL;
+		g_critical ("file %s: line %d: unexpected error: %s (%s, %d)", __FILE__, __LINE__, _inner_error_->message, g_quark_to_string (_inner_error_->domain), _inner_error_->code);
+		g_clear_error (&_inner_error_);
+		return NULL;
+	}
+	_tmp4_ = g_regex_replace_literal (regex, self, (gssize) (-1), 0, replacement, 0, &_inner_error_);
+	_tmp5_ = _tmp4_;
+	if (_inner_error_ != NULL) {
+		_g_regex_unref0 (regex);
+		if (_inner_error_->domain == G_REGEX_ERROR) {
+			goto __catch4_g_regex_error;
 		}
-		result = _tmp2_;
 		_g_regex_unref0 (regex);
-		return result;
+		g_critical ("file %s: line %d: unexpected error: %s (%s, %d)", __FILE__, __LINE__, _inner_error_->message, g_quark_to_string (_inner_error_->domain), _inner_error_->code);
+		g_clear_error (&_inner_error_);
+		return NULL;
 	}
+	result = _tmp5_;
+	_g_regex_unref0 (regex);
+	return result;
+	_g_regex_unref0 (regex);
 	goto __finally4;
 	__catch4_g_regex_error:
 	{
 		GError * e;
 		e = _inner_error_;
 		_inner_error_ = NULL;
-		{
-			g_assert_not_reached ();
-			_g_error_free0 (e);
-		}
+		g_assert_not_reached ();
+		_g_error_free0 (e);
 	}
 	__finally4:
 	if (_inner_error_ != NULL) {
@@ -1968,112 +2247,185 @@ static char* string_replace (const char* self, const char* old, const char* repl
 
 
 static void main_window_sync_name (MainWindow* self, DocumentTab* tab) {
+	DocumentTab* _tmp0_ = NULL;
+	gint _tmp1_;
 	gint page_num;
-	char* action_name;
+	gchar* _tmp2_ = NULL;
+	gchar* action_name;
+	GtkAction* _tmp3_ = NULL;
+	GtkAction* _tmp4_;
 	GtkAction* action;
-	char* _tmp0_;
-	char* _tmp1_;
-	char* _tmp2_;
+	gchar* _tmp5_ = NULL;
+	gchar* _tmp6_;
+	gchar* _tmp7_ = NULL;
+	gchar* _tmp8_;
+	gchar* _tmp9_ = NULL;
+	gchar* _tmp10_;
 	g_return_if_fail (self != NULL);
 	g_return_if_fail (tab != NULL);
-	if (tab == main_window_get_active_tab (self)) {
+	_tmp0_ = main_window_get_active_tab (self);
+	if (tab == _tmp0_) {
 		main_window_my_set_title (self);
 	}
-	page_num = gtk_notebook_page_num ((GtkNotebook*) self->priv->documents_panel, (GtkWidget*) tab);
-	action_name = g_strdup_printf ("Tab_%d", page_num);
-	action = _g_object_ref0 (gtk_action_group_get_action (self->priv->documents_list_action_group, action_name));
+	_tmp1_ = gtk_notebook_page_num ((GtkNotebook*) self->priv->documents_panel, (GtkWidget*) tab);
+	page_num = _tmp1_;
+	_tmp2_ = g_strdup_printf ("Tab_%d", page_num);
+	action_name = _tmp2_;
+	_tmp3_ = gtk_action_group_get_action (self->priv->documents_list_action_group, action_name);
+	_tmp4_ = _g_object_ref0 (_tmp3_);
+	action = _tmp4_;
 	g_return_if_fail (action != NULL);
-	gtk_action_set_label (action, _tmp1_ = string_replace (_tmp0_ = document_tab_get_name (tab), "_", "__"));
-	_g_free0 (_tmp1_);
-	_g_free0 (_tmp0_);
-	gtk_action_set_tooltip (action, _tmp2_ = document_tab_get_menu_tip (tab));
-	_g_free0 (_tmp2_);
+	_tmp5_ = document_tab_get_name (tab);
+	_tmp6_ = _tmp5_;
+	_tmp7_ = string_replace (_tmp6_, "_", "__");
+	_tmp8_ = _tmp7_;
+	gtk_action_set_label (action, _tmp8_);
+	_g_free0 (_tmp8_);
+	_g_free0 (_tmp6_);
+	_tmp9_ = document_tab_get_menu_tip (tab);
+	_tmp10_ = _tmp9_;
+	gtk_action_set_tooltip (action, _tmp10_);
+	_g_free0 (_tmp10_);
 	_g_object_unref0 (action);
 	_g_free0 (action_name);
 }
 
 
-static glong string_get_length (const char* self) {
-	glong result;
-	g_return_val_if_fail (self != NULL, 0L);
-	result = g_utf8_strlen (self, (gssize) (-1));
-	return result;
-}
-
-
 static void main_window_my_set_title (MainWindow* self) {
+	DocumentTab* _tmp0_ = NULL;
 	guint max_title_length;
-	char* title;
-	char* dirname;
+	gchar* title;
+	gchar* dirname;
+	Document* _tmp1_ = NULL;
+	GFile* _tmp2_ = NULL;
+	GFile* _tmp3_;
 	GFile* loc;
-	const char* _tmp5_;
-	char* _tmp6_;
-	char* _tmp10_;
-	char* _tmp14_;
-	char* _tmp15_;
-	char* _tmp16_;
-	char* _tmp17_;
-	g_return_if_fail (self != NULL);
-	if (main_window_get_active_tab (self) == NULL) {
+	const gchar* _tmp15_ = NULL;
+	Document* _tmp16_ = NULL;
+	gboolean _tmp17_;
+	gchar* _tmp18_ = NULL;
+	Document* _tmp19_ = NULL;
+	gboolean _tmp20_;
+	gchar* _tmp26_ = NULL;
+	gchar* _tmp31_;
+	gchar* _tmp32_;
+	gchar* _tmp33_;
+	gchar* _tmp34_;
+	gchar* _tmp35_;
+	gchar* _tmp36_;
+	gchar* _tmp37_;
+	gchar* _tmp38_;
+	g_return_if_fail (self != NULL);
+	_tmp0_ = main_window_get_active_tab (self);
+	if (_tmp0_ == NULL) {
 		gtk_window_set_title ((GtkWindow*) self, "LaTeXila");
 		return;
 	}
 	max_title_length = (guint) 100;
 	title = NULL;
 	dirname = NULL;
-	loc = _g_object_ref0 (document_get_location (main_window_get_active_document (self)));
+	_tmp1_ = main_window_get_active_document (self);
+	_tmp2_ = document_get_location (_tmp1_);
+	_tmp3_ = _g_object_ref0 (_tmp2_);
+	loc = _tmp3_;
 	if (loc == NULL) {
-		char* _tmp0_;
-		title = (_tmp0_ = document_get_short_name_for_display (main_window_get_active_document (self)), _g_free0 (title), _tmp0_);
+		Document* _tmp4_ = NULL;
+		gchar* _tmp5_ = NULL;
+		_tmp4_ = main_window_get_active_document (self);
+		_tmp5_ = document_get_short_name_for_display (_tmp4_);
+		_g_free0 (title);
+		title = _tmp5_;
 	} else {
-		char* basename;
-		basename = g_file_get_basename (loc);
-		if (string_get_length (basename) > max_title_length) {
-			char* _tmp1_;
-			title = (_tmp1_ = utils_str_middle_truncate (basename, max_title_length), _g_free0 (title), _tmp1_);
+		gchar* _tmp6_ = NULL;
+		gchar* basename;
+		gint _tmp7_;
+		_tmp6_ = g_file_get_basename (loc);
+		basename = _tmp6_;
+		_tmp7_ = strlen (basename);
+		if (_tmp7_ > max_title_length) {
+			gchar* _tmp8_ = NULL;
+			_tmp8_ = utils_str_middle_truncate (basename, max_title_length);
+			_g_free0 (title);
+			title = _tmp8_;
 		} else {
-			char* _tmp2_;
-			char* _tmp3_;
-			char* _tmp4_;
-			title = (_tmp2_ = g_strdup (basename), _g_free0 (title), _tmp2_);
-			dirname = (_tmp4_ = utils_str_middle_truncate (_tmp3_ = utils_get_dirname_for_display (loc), (guint) MAX ((glong) 20, max_title_length - string_get_length (basename))), _g_free0 (dirname), _tmp4_);
-			_g_free0 (_tmp3_);
+			gchar* _tmp9_;
+			gchar* _tmp10_ = NULL;
+			gchar* _tmp11_;
+			gint _tmp12_;
+			glong _tmp13_;
+			gchar* _tmp14_ = NULL;
+			_tmp9_ = g_strdup (basename);
+			_g_free0 (title);
+			title = _tmp9_;
+			_tmp10_ = utils_get_dirname_for_display (loc);
+			_tmp11_ = _tmp10_;
+			_tmp12_ = strlen (basename);
+			_tmp13_ = MAX ((glong) 20, (glong) (max_title_length - _tmp12_));
+			_tmp14_ = utils_str_middle_truncate (_tmp11_, (guint) _tmp13_);
+			_g_free0 (dirname);
+			dirname = _tmp14_;
+			_g_free0 (_tmp11_);
 		}
 		_g_free0 (basename);
 	}
-	_tmp5_ = NULL;
-	if (document_get_modified (main_window_get_active_document (self))) {
-		_tmp5_ = "*";
+	_tmp16_ = main_window_get_active_document (self);
+	_tmp17_ = document_get_modified (_tmp16_);
+	if (_tmp17_) {
+		_tmp15_ = "*";
 	} else {
-		_tmp5_ = "";
+		_tmp15_ = "";
 	}
-	_tmp6_ = NULL;
-	if (document_get_readonly (main_window_get_active_document (self))) {
-		char* _tmp7_;
-		char* _tmp8_;
-		_tmp6_ = (_tmp8_ = g_strconcat (_tmp7_ = g_strconcat (" [", _ ("Read-Only"), NULL), "]", NULL), _g_free0 (_tmp6_), _tmp8_);
-		_g_free0 (_tmp7_);
+	_tmp19_ = main_window_get_active_document (self);
+	_tmp20_ = document_get_readonly (_tmp19_);
+	if (_tmp20_) {
+		const gchar* _tmp21_ = NULL;
+		gchar* _tmp22_;
+		gchar* _tmp23_;
+		gchar* _tmp24_;
+		_tmp21_ = _ ("Read-Only");
+		_tmp22_ = g_strconcat (" [", _tmp21_, NULL);
+		_tmp23_ = _tmp22_;
+		_tmp24_ = g_strconcat (_tmp23_, "]", NULL);
+		_g_free0 (_tmp18_);
+		_tmp18_ = _tmp24_;
+		_g_free0 (_tmp23_);
 	} else {
-		char* _tmp9_;
-		_tmp6_ = (_tmp9_ = g_strdup (""), _g_free0 (_tmp6_), _tmp9_);
+		gchar* _tmp25_;
+		_tmp25_ = g_strdup ("");
+		_g_free0 (_tmp18_);
+		_tmp18_ = _tmp25_;
 	}
-	_tmp10_ = NULL;
 	if (dirname != NULL) {
-		char* _tmp11_;
-		char* _tmp12_;
-		_tmp10_ = (_tmp12_ = g_strconcat (_tmp11_ = g_strconcat (" (", dirname, NULL), ")", NULL), _g_free0 (_tmp10_), _tmp12_);
-		_g_free0 (_tmp11_);
+		gchar* _tmp27_;
+		gchar* _tmp28_;
+		gchar* _tmp29_;
+		_tmp27_ = g_strconcat (" (", dirname, NULL);
+		_tmp28_ = _tmp27_;
+		_tmp29_ = g_strconcat (_tmp28_, ")", NULL);
+		_g_free0 (_tmp26_);
+		_tmp26_ = _tmp29_;
+		_g_free0 (_tmp28_);
 	} else {
-		char* _tmp13_;
-		_tmp10_ = (_tmp13_ = g_strdup (""), _g_free0 (_tmp10_), _tmp13_);
-	}
-	gtk_window_set_title ((GtkWindow*) self, _tmp17_ = g_strconcat (_tmp16_ = g_strconcat (_tmp15_ = g_strconcat (_tmp14_ = g_strconcat (_tmp5_, title, NULL), _tmp6_, NULL), _tmp10_, NULL), " - LaTeXila", NULL));
-	_g_free0 (_tmp17_);
-	_g_free0 (_tmp16_);
-	_g_free0 (_tmp15_);
-	_g_free0 (_tmp14_);
-	_g_free0 (_tmp10_);
-	_g_free0 (_tmp6_);
+		gchar* _tmp30_;
+		_tmp30_ = g_strdup ("");
+		_g_free0 (_tmp26_);
+		_tmp26_ = _tmp30_;
+	}
+	_tmp31_ = g_strconcat (_tmp15_, title, NULL);
+	_tmp32_ = _tmp31_;
+	_tmp33_ = g_strconcat (_tmp32_, _tmp18_, NULL);
+	_tmp34_ = _tmp33_;
+	_tmp35_ = g_strconcat (_tmp34_, _tmp26_, NULL);
+	_tmp36_ = _tmp35_;
+	_tmp37_ = g_strconcat (_tmp36_, " - LaTeXila", NULL);
+	_tmp38_ = _tmp37_;
+	gtk_window_set_title ((GtkWindow*) self, _tmp38_);
+	_g_free0 (_tmp38_);
+	_g_free0 (_tmp36_);
+	_g_free0 (_tmp34_);
+	_g_free0 (_tmp32_);
+	_g_free0 (_tmp26_);
+	_g_free0 (_tmp18_);
 	_g_object_unref0 (loc);
 	_g_free0 (dirname);
 	_g_free0 (title);
@@ -2083,13 +2435,20 @@ static void main_window_my_set_title (MainWindow* self) {
 gboolean main_window_save_document (MainWindow* self, Document* doc, gboolean force_save_as) {
 	gboolean result = FALSE;
 	gboolean _tmp0_ = FALSE;
+	const gchar* _tmp2_ = NULL;
+	GtkFileChooserDialog* _tmp3_ = NULL;
 	GtkFileChooserDialog* file_chooser;
-	char* _tmp4_;
+	GFile* _tmp4_ = NULL;
+	GFile* _tmp9_ = NULL;
+	gchar* _tmp24_ = NULL;
+	GFile* _tmp25_ = NULL;
 	GError * _inner_error_ = NULL;
 	g_return_val_if_fail (self != NULL, FALSE);
 	g_return_val_if_fail (doc != NULL, FALSE);
 	if (!force_save_as) {
-		_tmp0_ = document_get_location (doc) != NULL;
+		GFile* _tmp1_ = NULL;
+		_tmp1_ = document_get_location (doc);
+		_tmp0_ = _tmp1_ != NULL;
 	} else {
 		_tmp0_ = FALSE;
 	}
@@ -2098,23 +2457,34 @@ gboolean main_window_save_document (MainWindow* self, Document* doc, gboolean fo
 		result = TRUE;
 		return result;
 	}
-	file_chooser = g_object_ref_sink ((GtkFileChooserDialog*) gtk_file_chooser_dialog_new (_ ("Save File"), (GtkWindow*) self, GTK_FILE_CHOOSER_ACTION_SAVE, GTK_STOCK_CANCEL, GTK_RESPONSE_CANCEL, GTK_STOCK_SAVE, GTK_RESPONSE_ACCEPT, NULL, NULL));
-	if (document_get_location (doc) == NULL) {
-		char* _tmp1_;
-		gtk_file_chooser_set_current_name ((GtkFileChooser*) file_chooser, _tmp1_ = g_strconcat (document_tab_get_label_text (doc->tab), ".tex", NULL));
-		_g_free0 (_tmp1_);
+	_tmp2_ = _ ("Save File");
+	_tmp3_ = (GtkFileChooserDialog*) gtk_file_chooser_dialog_new (_tmp2_, (GtkWindow*) self, GTK_FILE_CHOOSER_ACTION_SAVE, GTK_STOCK_CANCEL, GTK_RESPONSE_CANCEL, GTK_STOCK_SAVE, GTK_RESPONSE_ACCEPT, NULL, NULL);
+	file_chooser = g_object_ref_sink (_tmp3_);
+	_tmp4_ = document_get_location (doc);
+	if (_tmp4_ == NULL) {
+		const gchar* _tmp5_ = NULL;
+		gchar* _tmp6_;
+		gchar* _tmp7_;
+		_tmp5_ = document_tab_get_label_text (doc->tab);
+		_tmp6_ = g_strconcat (_tmp5_, ".tex", NULL);
+		_tmp7_ = _tmp6_;
+		gtk_file_chooser_set_current_name ((GtkFileChooser*) file_chooser, _tmp7_);
+		_g_free0 (_tmp7_);
 	} else {
-		gtk_file_chooser_set_current_name ((GtkFileChooser*) file_chooser, document_tab_get_label_text (doc->tab));
+		const gchar* _tmp8_ = NULL;
+		_tmp8_ = document_tab_get_label_text (doc->tab);
+		gtk_file_chooser_set_current_name ((GtkFileChooser*) file_chooser, _tmp8_);
 	}
 	if (self->priv->file_chooser_current_folder != NULL) {
 		gtk_file_chooser_set_current_folder ((GtkFileChooser*) file_chooser, self->priv->file_chooser_current_folder);
 	}
-	if (document_get_location (doc) != NULL) {
-		{
-			gtk_file_chooser_set_file ((GtkFileChooser*) file_chooser, document_get_location (doc), &_inner_error_);
-			if (_inner_error_ != NULL) {
-				goto __catch5_g_error;
-			}
+	_tmp9_ = document_get_location (doc);
+	if (_tmp9_ != NULL) {
+		GFile* _tmp10_ = NULL;
+		_tmp10_ = document_get_location (doc);
+		gtk_file_chooser_set_file ((GtkFileChooser*) file_chooser, _tmp10_, &_inner_error_);
+		if (_inner_error_ != NULL) {
+			goto __catch5_g_error;
 		}
 		goto __finally5;
 		__catch5_g_error:
@@ -2122,9 +2492,7 @@ gboolean main_window_save_document (MainWindow* self, Document* doc, gboolean fo
 			GError * e;
 			e = _inner_error_;
 			_inner_error_ = NULL;
-			{
-				_g_error_free0 (e);
-			}
+			_g_error_free0 (e);
 		}
 		__finally5:
 		if (_inner_error_ != NULL) {
@@ -2135,26 +2503,51 @@ gboolean main_window_save_document (MainWindow* self, Document* doc, gboolean fo
 		}
 	}
 	while (TRUE) {
+		gint _tmp11_;
+		GFile* _tmp12_ = NULL;
+		GFile* _tmp13_;
 		GFile* file;
-		if (!(gtk_dialog_run ((GtkDialog*) file_chooser) == GTK_RESPONSE_ACCEPT)) {
+		gboolean _tmp14_;
+		_tmp11_ = gtk_dialog_run ((GtkDialog*) file_chooser);
+		if (!(_tmp11_ == GTK_RESPONSE_ACCEPT)) {
 			break;
 		}
-		file = _g_object_ref0 (gtk_file_chooser_get_file ((GtkFileChooser*) file_chooser));
-		if (g_file_query_exists (file, NULL)) {
-			char* _tmp2_;
-			GtkMessageDialog* _tmp3_;
+		_tmp12_ = gtk_file_chooser_get_file ((GtkFileChooser*) file_chooser);
+		_tmp13_ = _g_object_ref0 (_tmp12_);
+		file = _tmp13_;
+		_tmp14_ = g_file_query_exists (file, NULL);
+		if (_tmp14_) {
+			const gchar* _tmp15_ = NULL;
+			gchar* _tmp16_ = NULL;
+			gchar* _tmp17_;
+			GtkMessageDialog* _tmp18_ = NULL;
+			GtkMessageDialog* _tmp19_;
 			GtkMessageDialog* confirmation;
+			const gchar* _tmp20_ = NULL;
+			GtkButton* _tmp21_ = NULL;
 			GtkButton* button_replace;
+			GtkImage* _tmp22_ = NULL;
 			GtkImage* icon;
+			gint _tmp23_;
 			gint response;
-			confirmation = (_tmp3_ = g_object_ref_sink ((GtkMessageDialog*) gtk_message_dialog_new ((GtkWindow*) self, GTK_DIALOG_DESTROY_WITH_PARENT, GTK_MESSAGE_QUESTION, GTK_BUTTONS_NONE, _ ("A file named \"%s\" already exists. Do you want to replace it?"), _tmp2_ = g_file_get_basename (file))), _g_free0 (_tmp2_), _tmp3_);
+			_tmp15_ = _ ("A file named \"%s\" already exists. Do you want to replace it?");
+			_tmp16_ = g_file_get_basename (file);
+			_tmp17_ = _tmp16_;
+			_tmp18_ = (GtkMessageDialog*) gtk_message_dialog_new ((GtkWindow*) self, GTK_DIALOG_DESTROY_WITH_PARENT, GTK_MESSAGE_QUESTION, GTK_BUTTONS_NONE, _tmp15_, _tmp17_);
+			_tmp19_ = g_object_ref_sink (_tmp18_);
+			_g_free0 (_tmp17_);
+			confirmation = _tmp19_;
 			gtk_dialog_add_button ((GtkDialog*) confirmation, GTK_STOCK_CANCEL, (gint) GTK_RESPONSE_CANCEL);
-			button_replace = g_object_ref_sink ((GtkButton*) gtk_button_new_with_label (_ ("Replace")));
-			icon = g_object_ref_sink ((GtkImage*) gtk_image_new_from_stock (GTK_STOCK_SAVE_AS, GTK_ICON_SIZE_BUTTON));
+			_tmp20_ = _ ("Replace");
+			_tmp21_ = (GtkButton*) gtk_button_new_with_label (_tmp20_);
+			button_replace = g_object_ref_sink (_tmp21_);
+			_tmp22_ = (GtkImage*) gtk_image_new_from_stock (GTK_STOCK_SAVE_AS, GTK_ICON_SIZE_BUTTON);
+			icon = g_object_ref_sink (_tmp22_);
 			gtk_button_set_image (button_replace, (GtkWidget*) icon);
 			gtk_dialog_add_action_widget ((GtkDialog*) confirmation, (GtkWidget*) button_replace, (gint) GTK_RESPONSE_YES);
 			gtk_widget_show ((GtkWidget*) button_replace);
-			response = gtk_dialog_run ((GtkDialog*) confirmation);
+			_tmp23_ = gtk_dialog_run ((GtkDialog*) confirmation);
+			response = _tmp23_;
 			gtk_object_destroy ((GtkObject*) confirmation);
 			if (response != GTK_RESPONSE_YES) {
 				_g_object_unref0 (icon);
@@ -2171,9 +2564,12 @@ gboolean main_window_save_document (MainWindow* self, Document* doc, gboolean fo
 		_g_object_unref0 (file);
 		break;
 	}
-	self->priv->file_chooser_current_folder = (_tmp4_ = gtk_file_chooser_get_current_folder ((GtkFileChooser*) file_chooser), _g_free0 (self->priv->file_chooser_current_folder), _tmp4_);
+	_tmp24_ = gtk_file_chooser_get_current_folder ((GtkFileChooser*) file_chooser);
+	_g_free0 (self->priv->file_chooser_current_folder);
+	self->priv->file_chooser_current_folder = _tmp24_;
 	gtk_object_destroy ((GtkObject*) file_chooser);
-	if (document_get_location (doc) != NULL) {
+	_tmp25_ = document_get_location (doc);
+	if (_tmp25_ != NULL) {
 		document_save (doc, FALSE, TRUE);
 		result = TRUE;
 		_g_object_unref0 (file_chooser);
@@ -2187,38 +2583,46 @@ gboolean main_window_save_document (MainWindow* self, Document* doc, gboolean fo
 
 static gboolean main_window_close_all_documents (MainWindow* self) {
 	gboolean result = FALSE;
+	GList* _tmp0_ = NULL;
 	GList* unsaved_documents;
 	g_return_val_if_fail (self != NULL, FALSE);
-	unsaved_documents = main_window_get_unsaved_documents (self);
+	_tmp0_ = main_window_get_unsaved_documents (self);
+	unsaved_documents = _tmp0_;
 	if (unsaved_documents == NULL) {
 		documents_panel_remove_all_tabs (self->priv->documents_panel);
 		result = TRUE;
-		__g_list_free_g_object_unref0 (unsaved_documents);
+		__g_list_free__g_object_unref0_0 (unsaved_documents);
 		return result;
 	} else {
 		if (unsaved_documents->next == NULL) {
+			Document* _tmp1_;
 			Document* doc;
-			doc = _g_object_ref0 ((Document*) unsaved_documents->data);
+			gboolean _tmp2_;
+			_tmp1_ = _g_object_ref0 ((Document*) unsaved_documents->data);
+			doc = _tmp1_;
 			main_window_set_active_tab (self, doc->tab);
-			if (main_window_close_tab (self, doc->tab, FALSE)) {
+			_tmp2_ = main_window_close_tab (self, doc->tab, FALSE);
+			if (_tmp2_) {
 				documents_panel_remove_all_tabs (self->priv->documents_panel);
 				result = TRUE;
 				_g_object_unref0 (doc);
-				__g_list_free_g_object_unref0 (unsaved_documents);
+				__g_list_free__g_object_unref0_0 (unsaved_documents);
 				return result;
 			}
 			_g_object_unref0 (doc);
 		} else {
+			gint _tmp3_;
 			dialogs_close_several_unsaved_documents (self, unsaved_documents);
-			if (gtk_notebook_get_n_pages ((GtkNotebook*) self->priv->documents_panel) == 0) {
+			_tmp3_ = gtk_notebook_get_n_pages ((GtkNotebook*) self->priv->documents_panel);
+			if (_tmp3_ == 0) {
 				result = TRUE;
-				__g_list_free_g_object_unref0 (unsaved_documents);
+				__g_list_free__g_object_unref0_0 (unsaved_documents);
 				return result;
 			}
 		}
 	}
 	result = FALSE;
-	__g_list_free_g_object_unref0 (unsaved_documents);
+	__g_list_free__g_object_unref0_0 (unsaved_documents);
 	return result;
 }
 
@@ -2231,31 +2635,61 @@ void main_window_remove_all_tabs (MainWindow* self) {
 
 static void main_window_update_cursor_position_statusbar (MainWindow* self) {
 	GtkTextIter iter = {0};
+	Document* _tmp0_ = NULL;
+	Document* _tmp1_ = NULL;
+	GtkTextMark* _tmp2_ = NULL;
+	GtkTextIter _tmp3_ = {0};
+	gint _tmp4_;
 	gint row;
+	DocumentView* _tmp5_ = NULL;
+	guint _tmp6_;
 	gint col;
 	g_return_if_fail (self != NULL);
-	gtk_text_buffer_get_iter_at_mark ((GtkTextBuffer*) main_window_get_active_document (self), &iter, gtk_text_buffer_get_insert ((GtkTextBuffer*) main_window_get_active_document (self)));
-	row = (gint) gtk_text_iter_get_line (&iter);
-	col = (gint) document_view_my_get_visual_column (main_window_get_active_view (self), &iter);
+	_tmp0_ = main_window_get_active_document (self);
+	_tmp1_ = main_window_get_active_document (self);
+	_tmp2_ = gtk_text_buffer_get_insert ((GtkTextBuffer*) _tmp1_);
+	gtk_text_buffer_get_iter_at_mark ((GtkTextBuffer*) _tmp0_, &_tmp3_, _tmp2_);
+	iter = _tmp3_;
+	_tmp4_ = gtk_text_iter_get_line (&iter);
+	row = (gint) _tmp4_;
+	_tmp5_ = main_window_get_active_view (self);
+	_tmp6_ = document_view_my_get_visual_column (_tmp5_, &iter);
+	col = (gint) _tmp6_;
 	custom_statusbar_set_cursor_position (self->priv->statusbar, row + 1, col + 1);
 }
 
 
 static void main_window_setup_toolbar_open_button (MainWindow* self, GtkToolbar* toolbar) {
+	GtkRecentManager* _tmp0_ = NULL;
+	GtkRecentManager* _tmp1_;
 	GtkRecentManager* recent_manager;
+	GtkRecentChooserMenu* _tmp2_ = NULL;
 	GtkWidget* toolbar_recent_menu;
+	GtkMenuToolButton* _tmp3_ = NULL;
 	GtkMenuToolButton* open_button;
+	const gchar* _tmp4_ = NULL;
+	const gchar* _tmp5_ = NULL;
+	GtkAction* _tmp6_ = NULL;
+	GtkAction* _tmp7_;
 	GtkAction* action;
 	g_return_if_fail (self != NULL);
 	g_return_if_fail (toolbar != NULL);
-	recent_manager = _g_object_ref0 (gtk_recent_manager_get_default ());
-	toolbar_recent_menu = (GtkWidget*) g_object_ref_sink ((GtkRecentChooserMenu*) gtk_recent_chooser_menu_new_for_manager (recent_manager));
+	_tmp0_ = gtk_recent_manager_get_default ();
+	_tmp1_ = _g_object_ref0 (_tmp0_);
+	recent_manager = _tmp1_;
+	_tmp2_ = (GtkRecentChooserMenu*) gtk_recent_chooser_menu_new_for_manager (recent_manager);
+	toolbar_recent_menu = (GtkWidget*) g_object_ref_sink (_tmp2_);
 	main_window_configure_recent_chooser (self, GTK_RECENT_CHOOSER (toolbar_recent_menu));
-	open_button = g_object_ref_sink ((GtkMenuToolButton*) gtk_menu_tool_button_new_from_stock (GTK_STOCK_OPEN));
+	_tmp3_ = (GtkMenuToolButton*) gtk_menu_tool_button_new_from_stock (GTK_STOCK_OPEN);
+	open_button = g_object_ref_sink (_tmp3_);
 	gtk_menu_tool_button_set_menu (open_button, toolbar_recent_menu);
-	gtk_tool_item_set_tooltip_text ((GtkToolItem*) open_button, _ ("Open a file"));
-	gtk_menu_tool_button_set_arrow_tooltip_text (open_button, _ ("Open a recently used file"));
-	action = _g_object_ref0 (gtk_action_group_get_action (self->priv->action_group, "FileOpen"));
+	_tmp4_ = _ ("Open a file");
+	gtk_tool_item_set_tooltip_text ((GtkToolItem*) open_button, _tmp4_);
+	_tmp5_ = _ ("Open a recently used file");
+	gtk_menu_tool_button_set_arrow_tooltip_text (open_button, _tmp5_);
+	_tmp6_ = gtk_action_group_get_action (self->priv->action_group, "FileOpen");
+	_tmp7_ = _g_object_ref0 (_tmp6_);
+	action = _tmp7_;
 	gtk_activatable_set_related_action ((GtkActivatable*) open_button, action);
 	gtk_toolbar_insert (toolbar, (GtkToolItem*) open_button, 1);
 	_g_object_unref0 (action);
@@ -2265,67 +2699,114 @@ static void main_window_setup_toolbar_open_button (MainWindow* self, GtkToolbar*
 }
 
 
-static void _lambda69_ (GtkRecentChooser* chooser, MainWindow* self) {
-	char* uri;
-	GFile* _tmp0_;
-	DocumentTab* _tmp1_;
+static void _lambda72_ (GtkRecentChooser* chooser, MainWindow* self) {
+	const gchar* _tmp0_ = NULL;
+	gchar* _tmp1_;
+	gchar* uri;
+	GFile* _tmp2_ = NULL;
+	GFile* _tmp3_;
+	DocumentTab* _tmp4_ = NULL;
+	DocumentTab* _tmp5_;
 	g_return_if_fail (chooser != NULL);
-	uri = g_strdup (gtk_recent_chooser_get_current_uri (chooser));
-	_tmp1_ = main_window_open_document (self, _tmp0_ = g_file_new_for_uri (uri));
-	_g_object_unref0 (_tmp1_);
-	_g_object_unref0 (_tmp0_);
+	_tmp0_ = gtk_recent_chooser_get_current_uri (chooser);
+	_tmp1_ = g_strdup (_tmp0_);
+	uri = _tmp1_;
+	_tmp2_ = g_file_new_for_uri (uri);
+	_tmp3_ = _tmp2_;
+	_tmp4_ = main_window_open_document (self, _tmp3_);
+	_tmp5_ = _tmp4_;
+	_g_object_unref0 (_tmp5_);
+	_g_object_unref0 (_tmp3_);
 	_g_free0 (uri);
 }
 
 
-static void __lambda69__gtk_recent_chooser_item_activated (GtkRecentChooser* _sender, gpointer self) {
-	_lambda69_ (_sender, self);
+static void __lambda72__gtk_recent_chooser_item_activated (GtkRecentChooser* _sender, gpointer self) {
+	_lambda72_ (_sender, self);
 }
 
 
 static void main_window_configure_recent_chooser (MainWindow* self, GtkRecentChooser* recent_chooser) {
+	GtkRecentFilter* _tmp0_ = NULL;
 	GtkRecentFilter* filter;
 	g_return_if_fail (self != NULL);
 	g_return_if_fail (recent_chooser != NULL);
 	gtk_recent_chooser_set_local_only (recent_chooser, FALSE);
 	gtk_recent_chooser_set_sort_type (recent_chooser, GTK_RECENT_SORT_MRU);
-	filter = g_object_ref_sink (gtk_recent_filter_new ());
+	_tmp0_ = gtk_recent_filter_new ();
+	filter = g_object_ref_sink (_tmp0_);
 	gtk_recent_filter_add_application (filter, "latexila");
 	gtk_recent_chooser_set_filter (recent_chooser, filter);
-	g_signal_connect_object (recent_chooser, "item-activated", (GCallback) __lambda69__gtk_recent_chooser_item_activated, self, 0);
+	g_signal_connect_object (recent_chooser, "item-activated", (GCallback) __lambda72__gtk_recent_chooser_item_activated, self, 0);
 	_g_object_unref0 (filter);
 }
 
 
 void main_window_save_state (MainWindow* self, gboolean sync) {
+	GSettings* _tmp0_ = NULL;
 	GSettings* settings_window;
+	GdkWindow* _tmp1_ = NULL;
+	GdkWindowState _tmp2_;
 	GdkWindowState state;
 	gint w = 0;
 	gint h = 0;
+	gint _tmp3_;
+	gint _tmp4_;
+	gint _tmp5_;
+	gint _tmp6_;
+	GSettings* _tmp7_ = NULL;
 	GSettings* settings_ui;
+	GtkAction* _tmp8_ = NULL;
+	GtkToggleAction* _tmp9_;
 	GtkToggleAction* action;
-	GtkToggleAction* _tmp0_;
-	GtkToggleAction* _tmp1_;
+	gboolean _tmp10_;
+	GtkAction* _tmp11_ = NULL;
+	GtkToggleAction* _tmp12_;
+	gboolean _tmp13_;
+	GtkAction* _tmp14_ = NULL;
+	GtkToggleAction* _tmp15_;
+	gboolean _tmp16_;
+	gint _tmp17_;
 	g_return_if_fail (self != NULL);
-	settings_window = g_settings_new ("org.gnome.latexila.state.window");
-	state = gdk_window_get_state (gtk_widget_get_window ((GtkWidget*) self));
+	_tmp0_ = g_settings_new ("org.gnome.latexila.state.window");
+	settings_window = _tmp0_;
+	_tmp1_ = gtk_widget_get_window ((GtkWidget*) self);
+	_tmp2_ = gdk_window_get_state (_tmp1_);
+	state = _tmp2_;
 	g_settings_set_int (settings_window, "state", (gint) state);
-	gtk_window_get_size ((GtkWindow*) self, &w, &h);
+	gtk_window_get_size ((GtkWindow*) self, &_tmp3_, &_tmp4_);
+	w = _tmp3_;
+	h = _tmp4_;
 	if ((state & GDK_WINDOW_STATE_MAXIMIZED) == GDK_WINDOW_STATE_MAXIMIZED) {
 		w = w - 100;
 		h = h - 100;
 	}
 	g_settings_set (settings_window, "size", "(ii)", w, h);
-	g_settings_set_int (settings_window, "side-panel-size", gtk_paned_get_position ((GtkPaned*) self->priv->main_hpaned));
-	g_settings_set_int (settings_window, "vertical-paned-position", gtk_paned_get_position ((GtkPaned*) self->priv->vpaned));
-	settings_ui = g_settings_new ("org.gnome.latexila.preferences.ui");
-	action = _g_object_ref0 (GTK_TOGGLE_ACTION (gtk_action_group_get_action (self->priv->action_group, "ViewEditToolbar")));
-	g_settings_set_boolean (settings_ui, "edit-toolbar-visible", gtk_toggle_action_get_active (action));
-	action = (_tmp0_ = _g_object_ref0 (GTK_TOGGLE_ACTION (gtk_action_group_get_action (self->priv->action_group, "ViewSidePanel"))), _g_object_unref0 (action), _tmp0_);
-	g_settings_set_boolean (settings_ui, "side-panel-visible", gtk_toggle_action_get_active (action));
-	action = (_tmp1_ = _g_object_ref0 (GTK_TOGGLE_ACTION (gtk_action_group_get_action (self->priv->action_group, "ViewBottomPanel"))), _g_object_unref0 (action), _tmp1_);
-	g_settings_set_boolean (settings_ui, "bottom-panel-visible", gtk_toggle_action_get_active (action));
-	g_settings_set_int (settings_ui, "side-panel-component", side_panel_get_active_component (self->priv->side_panel));
+	_tmp5_ = gtk_paned_get_position ((GtkPaned*) self->priv->main_hpaned);
+	g_settings_set_int (settings_window, "side-panel-size", _tmp5_);
+	_tmp6_ = gtk_paned_get_position ((GtkPaned*) self->priv->vpaned);
+	g_settings_set_int (settings_window, "vertical-paned-position", _tmp6_);
+	_tmp7_ = g_settings_new ("org.gnome.latexila.preferences.ui");
+	settings_ui = _tmp7_;
+	_tmp8_ = gtk_action_group_get_action (self->priv->action_group, "ViewEditToolbar");
+	_tmp9_ = _g_object_ref0 (GTK_TOGGLE_ACTION (_tmp8_));
+	action = _tmp9_;
+	_tmp10_ = gtk_toggle_action_get_active (action);
+	g_settings_set_boolean (settings_ui, "edit-toolbar-visible", _tmp10_);
+	_tmp11_ = gtk_action_group_get_action (self->priv->action_group, "ViewSidePanel");
+	_tmp12_ = _g_object_ref0 (GTK_TOGGLE_ACTION (_tmp11_));
+	_g_object_unref0 (action);
+	action = _tmp12_;
+	_tmp13_ = gtk_toggle_action_get_active (action);
+	g_settings_set_boolean (settings_ui, "side-panel-visible", _tmp13_);
+	_tmp14_ = gtk_action_group_get_action (self->priv->action_group, "ViewBottomPanel");
+	_tmp15_ = _g_object_ref0 (GTK_TOGGLE_ACTION (_tmp14_));
+	_g_object_unref0 (action);
+	action = _tmp15_;
+	_tmp16_ = gtk_toggle_action_get_active (action);
+	g_settings_set_boolean (settings_ui, "bottom-panel-visible", _tmp16_);
+	_tmp17_ = side_panel_get_active_component (self->priv->side_panel);
+	g_settings_set_int (settings_ui, "side-panel-component", _tmp17_);
 	if (sync) {
 		g_settings_sync ();
 		g_settings_sync ();
@@ -2337,14 +2818,25 @@ void main_window_save_state (MainWindow* self, gboolean sync) {
 
 
 static void main_window_move_tab_to_new_window (MainWindow* self, DocumentTab* tab) {
-	Application* _tmp0_;
-	MainWindow* _tmp1_;
+	Application* _tmp0_ = NULL;
+	Application* _tmp1_;
+	MainWindow* _tmp2_ = NULL;
+	MainWindow* _tmp3_;
 	MainWindow* new_window;
+	DocumentView* _tmp4_ = NULL;
+	DocumentView* _tmp5_;
 	DocumentView* view;
 	g_return_if_fail (self != NULL);
 	g_return_if_fail (tab != NULL);
-	new_window = (_tmp1_ = application_create_window (_tmp0_ = application_get_default (), NULL), _g_object_unref0 (_tmp0_), _tmp1_);
-	view = _g_object_ref0 (document_tab_get_view (tab));
+	_tmp0_ = application_get_default ();
+	_tmp1_ = _tmp0_;
+	_tmp2_ = application_create_window (_tmp1_, NULL);
+	_tmp3_ = _tmp2_;
+	_g_object_unref0 (_tmp1_);
+	new_window = _tmp3_;
+	_tmp4_ = document_tab_get_view (tab);
+	_tmp5_ = _g_object_ref0 (_tmp4_);
+	view = _tmp5_;
 	documents_panel_remove_tab (self->priv->documents_panel, tab);
 	main_window_create_tab_with_view (new_window, view);
 	_g_object_unref0 (view);
@@ -2358,10 +2850,14 @@ static void _main_window_build_tools_menu_activate_gtk_action_activate (GtkActio
 
 
 void main_window_update_build_tools_menu (MainWindow* self) {
-	AppSettings* _tmp1_;
-	GeeLinkedList* _tmp2_;
+	GList* _tmp0_ = NULL;
+	AppSettings* _tmp3_ = NULL;
+	AppSettings* _tmp4_;
+	GeeLinkedList* _tmp5_ = NULL;
+	GeeLinkedList* _tmp6_;
 	GeeLinkedList* build_tools;
-	guint _tmp3_ = 0U;
+	guint _tmp7_ = 0U;
+	gint _tmp8_;
 	guint id;
 	gint i;
 	g_return_if_fail (self != NULL);
@@ -2369,91 +2865,117 @@ void main_window_update_build_tools_menu (MainWindow* self) {
 	if (self->priv->build_tools_menu_ui_id != 0) {
 		gtk_ui_manager_remove_ui (self->priv->ui_manager, self->priv->build_tools_menu_ui_id);
 	}
+	_tmp0_ = gtk_action_group_list_actions (self->priv->build_tools_action_group);
 	{
 		GList* action_collection;
 		GList* action_it;
-		action_collection = gtk_action_group_list_actions (self->priv->build_tools_action_group);
+		action_collection = _tmp0_;
 		for (action_it = action_collection; action_it != NULL; action_it = action_it->next) {
+			GtkAction* _tmp1_;
 			GtkAction* action;
-			action = _g_object_ref0 ((GtkAction*) action_it->data);
+			_tmp1_ = _g_object_ref0 ((GtkAction*) action_it->data);
+			action = _tmp1_;
 			{
-				guint _tmp0_;
-				g_signal_parse_name ("activate", GTK_TYPE_ACTION, &_tmp0_, NULL, FALSE);
-				g_signal_handlers_disconnect_matched (action, G_SIGNAL_MATCH_ID | G_SIGNAL_MATCH_FUNC | G_SIGNAL_MATCH_DATA, _tmp0_, 0, NULL, (GCallback) _main_window_build_tools_menu_activate_gtk_action_activate, self);
+				guint _tmp2_;
+				g_signal_parse_name ("activate", GTK_TYPE_ACTION, &_tmp2_, NULL, FALSE);
+				g_signal_handlers_disconnect_matched (action, G_SIGNAL_MATCH_ID | G_SIGNAL_MATCH_FUNC | G_SIGNAL_MATCH_DATA, _tmp2_, 0, NULL, (GCallback) _main_window_build_tools_menu_activate_gtk_action_activate, self);
 				gtk_action_group_remove_action (self->priv->build_tools_action_group, action);
 				_g_object_unref0 (action);
 			}
 		}
 		_g_list_free0 (action_collection);
 	}
-	build_tools = (_tmp2_ = app_settings_get_build_tools (_tmp1_ = app_settings_get_default ()), _g_object_unref0 (_tmp1_), _tmp2_);
-	if (gee_collection_get_size ((GeeCollection*) build_tools) > 0) {
-		_tmp3_ = gtk_ui_manager_new_merge_id (self->priv->ui_manager);
+	_tmp3_ = app_settings_get_default ();
+	_tmp4_ = _tmp3_;
+	_tmp5_ = app_settings_get_build_tools (_tmp4_);
+	_tmp6_ = _tmp5_;
+	_g_object_unref0 (_tmp4_);
+	build_tools = _tmp6_;
+	_tmp8_ = gee_collection_get_size ((GeeCollection*) build_tools);
+	if (_tmp8_ > 0) {
+		guint _tmp9_;
+		_tmp9_ = gtk_ui_manager_new_merge_id (self->priv->ui_manager);
+		_tmp7_ = _tmp9_;
 	} else {
-		_tmp3_ = (guint) 0;
+		_tmp7_ = (guint) 0;
 	}
-	id = _tmp3_;
+	id = _tmp7_;
 	i = 0;
 	{
-		GeeIterator* _build_tool_it;
-		_build_tool_it = gee_abstract_collection_iterator ((GeeAbstractCollection*) build_tools);
+		GeeLinkedList* _tmp10_;
+		GeeLinkedList* _build_tool_list;
+		gint _tmp11_;
+		gint _build_tool_size;
+		gint _build_tool_index;
+		_tmp10_ = _g_object_ref0 (build_tools);
+		_build_tool_list = _tmp10_;
+		_tmp11_ = gee_collection_get_size ((GeeCollection*) _build_tool_list);
+		_build_tool_size = _tmp11_;
+		_build_tool_index = -1;
 		while (TRUE) {
-			BuildTool* _tmp4_;
-			BuildTool _tmp5_ = {0};
-			BuildTool _tmp6_;
+			gpointer _tmp12_ = NULL;
+			BuildTool* _tmp13_;
+			BuildTool _tmp14_;
+			BuildTool _tmp15_ = {0};
+			BuildTool _tmp16_;
 			BuildTool build_tool;
-			char* _tmp7_;
-			char* _tmp8_;
-			char* action_name;
+			gchar* _tmp17_ = NULL;
+			gchar* _tmp18_;
+			gchar* _tmp19_ = NULL;
+			gchar* _tmp20_;
+			gchar* action_name;
+			GtkAction* _tmp21_ = NULL;
 			GtkAction* action;
-			char* _tmp9_;
-			char* accel;
-			if (!gee_iterator_next (_build_tool_it)) {
+			gchar* _tmp22_ = NULL;
+			gchar* _tmp24_;
+			gchar* accel;
+			_build_tool_index = _build_tool_index + 1;
+			if (!(_build_tool_index < _build_tool_size)) {
 				break;
 			}
-			build_tool = (_tmp6_ = (build_tool_copy (_tmp4_ = (BuildTool*) gee_iterator_get (_build_tool_it), &_tmp5_), _tmp5_), _build_tool_free0 (_tmp4_), _tmp6_);
-			action_name = (_tmp8_ = g_strconcat ("BuildTool_", _tmp7_ = g_strdup_printf ("%i", i), NULL), _g_free0 (_tmp7_), _tmp8_);
-			action = gtk_action_new (action_name, build_tool.label, build_tool.description, build_tool.icon);
-			_tmp9_ = NULL;
+			_tmp12_ = gee_abstract_list_get ((GeeAbstractList*) _build_tool_list, _build_tool_index);
+			_tmp13_ = (BuildTool*) _tmp12_;
+			build_tool_copy (_tmp13_, &_tmp15_);
+			_tmp14_ = _tmp15_;
+			_tmp16_ = _tmp14_;
+			_build_tool_free0 (_tmp13_);
+			build_tool = _tmp16_;
+			_tmp17_ = g_strdup_printf ("%i", i);
+			_tmp18_ = _tmp17_;
+			_tmp19_ = g_strconcat ("BuildTool_", _tmp18_, NULL);
+			_tmp20_ = _tmp19_;
+			_g_free0 (_tmp18_);
+			action_name = _tmp20_;
+			_tmp21_ = gtk_action_new (action_name, build_tool.label, build_tool.description, build_tool.icon);
+			action = _tmp21_;
 			if (i < 10) {
-				char* _tmp10_;
-				_tmp9_ = (_tmp10_ = g_strdup_printf ("<Release>F%d", i + 2), _g_free0 (_tmp9_), _tmp10_);
+				gchar* _tmp23_ = NULL;
+				_tmp23_ = g_strdup_printf ("<Release>F%d", i + 2);
+				_g_free0 (_tmp22_);
+				_tmp22_ = _tmp23_;
 			} else {
-				char* _tmp11_;
-				_tmp9_ = (_tmp11_ = NULL, _g_free0 (_tmp9_), _tmp11_);
+				_g_free0 (_tmp22_);
+				_tmp22_ = NULL;
 			}
-			accel = g_strdup (_tmp9_);
+			_tmp24_ = g_strdup (_tmp22_);
+			accel = _tmp24_;
 			gtk_action_group_add_action_with_accel (self->priv->build_tools_action_group, action, accel);
 			g_signal_connect_object (action, "activate", (GCallback) _main_window_build_tools_menu_activate_gtk_action_activate, self, 0);
 			gtk_ui_manager_add_ui (self->priv->ui_manager, id, "/MainMenu/BuildMenu/BuildToolsPlaceholder", action_name, action_name, GTK_UI_MANAGER_MENUITEM, FALSE);
 			gtk_ui_manager_add_ui (self->priv->ui_manager, id, "/MainToolbar/BuildToolsPlaceholder2", action_name, action_name, GTK_UI_MANAGER_TOOLITEM, FALSE);
 			i++;
 			_g_free0 (accel);
-			_g_free0 (_tmp9_);
+			_g_free0 (_tmp22_);
 			_g_object_unref0 (action);
 			_g_free0 (action_name);
 			build_tool_destroy (&build_tool);
 		}
-		_g_object_unref0 (_build_tool_it);
+		_g_object_unref0 (_build_tool_list);
 	}
 	self->priv->build_tools_menu_ui_id = id;
 }
 
 
-static void _lambda72_ (Block7Data* _data7_) {
-	MainWindow * self;
-	GFile* _tmp0_;
-	self = _data7_->self;
-	file_browser_refresh_if_in_dir (self->priv->file_browser, _tmp0_ = g_file_get_parent (_data7_->main_file));
-	_g_object_unref0 (_tmp0_);
-}
-
-
-static void __lambda72__build_tool_runner_finished (BuildToolRunner* _sender, gpointer self) {
-	_lambda72_ (self);
-}
-
-
 static Block7Data* block7_data_ref (Block7Data* _data7_) {
 	g_atomic_int_inc (&_data7_->_ref_count_);
 	return _data7_;
@@ -2469,77 +2991,148 @@ static void block7_data_unref (Block7Data* _data7_) {
 }
 
 
+static void _lambda75_ (Block7Data* _data7_) {
+	MainWindow * self;
+	GFile* _tmp0_ = NULL;
+	GFile* _tmp1_;
+	self = _data7_->self;
+	_tmp0_ = g_file_get_parent (_data7_->main_file);
+	_tmp1_ = _tmp0_;
+	file_browser_refresh_if_in_dir (self->priv->file_browser, _tmp1_);
+	_g_object_unref0 (_tmp1_);
+}
+
+
+static void __lambda75__build_tool_runner_finished (BuildToolRunner* _sender, gpointer self) {
+	_lambda75_ (self);
+}
+
+
 static void main_window_build_tools_menu_activate (MainWindow* self, GtkAction* action) {
 	Block7Data* _data7_;
+	DocumentTab* _tmp0_ = NULL;
+	Document* _tmp1_ = NULL;
+	GFile* _tmp2_ = NULL;
+	const gchar* _tmp3_ = NULL;
+	gchar** _tmp4_;
+	gchar** _tmp5_ = NULL;
+	gchar** _name;
 	gint _name_length1;
 	gint __name_size_;
-	char** _tmp1_;
-	char** _tmp0_;
-	char** _name;
+	gint _tmp6_;
 	gint i;
-	AppSettings* _tmp2_;
-	GeeLinkedList* _tmp3_;
+	AppSettings* _tmp7_ = NULL;
+	AppSettings* _tmp8_;
+	GeeLinkedList* _tmp9_ = NULL;
+	GeeLinkedList* _tmp10_;
 	GeeLinkedList* build_tools;
-	BuildTool* _tmp4_;
-	BuildTool _tmp5_ = {0};
-	BuildTool _tmp6_;
+	gpointer _tmp11_ = NULL;
+	BuildTool* _tmp12_;
+	BuildTool _tmp13_;
+	BuildTool _tmp14_ = {0};
+	BuildTool _tmp15_;
 	BuildTool tool;
-	BuildToolRunner* _tmp9_;
+	Document* _tmp25_ = NULL;
+	GFile* _tmp26_ = NULL;
+	BuildToolRunner* _tmp27_ = NULL;
 	g_return_if_fail (self != NULL);
 	g_return_if_fail (action != NULL);
 	_data7_ = g_slice_new0 (Block7Data);
 	_data7_->_ref_count_ = 1;
 	_data7_->self = g_object_ref (self);
-	g_return_if_fail (main_window_get_active_tab (self) != NULL);
-	g_return_if_fail (document_get_location (main_window_get_active_document (self)) != NULL);
-	_name = (_tmp1_ = _tmp0_ = g_strsplit (gtk_action_get_name (action), "_", 0), _name_length1 = _vala_array_length (_tmp0_), __name_size_ = _name_length1, _tmp1_);
-	i = atoi (_name[1]);
-	build_tools = (_tmp3_ = app_settings_get_build_tools (_tmp2_ = app_settings_get_default ()), _g_object_unref0 (_tmp2_), _tmp3_);
-	tool = (_tmp6_ = (build_tool_copy (_tmp4_ = (BuildTool*) gee_abstract_list_get ((GeeAbstractList*) build_tools, i), &_tmp5_), _tmp5_), _build_tool_free0 (_tmp4_), _tmp6_);
+	_tmp0_ = main_window_get_active_tab (self);
+	g_return_if_fail (_tmp0_ != NULL);
+	_tmp1_ = main_window_get_active_document (self);
+	_tmp2_ = document_get_location (_tmp1_);
+	g_return_if_fail (_tmp2_ != NULL);
+	_tmp3_ = gtk_action_get_name (action);
+	_tmp5_ = _tmp4_ = g_strsplit (_tmp3_, "_", 0);
+	_name = _tmp5_;
+	_name_length1 = _vala_array_length (_tmp4_);
+	__name_size_ = _vala_array_length (_tmp4_);
+	_tmp6_ = atoi (_name[1]);
+	i = _tmp6_;
+	_tmp7_ = app_settings_get_default ();
+	_tmp8_ = _tmp7_;
+	_tmp9_ = app_settings_get_build_tools (_tmp8_);
+	_tmp10_ = _tmp9_;
+	_g_object_unref0 (_tmp8_);
+	build_tools = _tmp10_;
+	_tmp11_ = gee_abstract_list_get ((GeeAbstractList*) build_tools, i);
+	_tmp12_ = (BuildTool*) _tmp11_;
+	build_tool_copy (_tmp12_, &_tmp14_);
+	_tmp13_ = _tmp14_;
+	_tmp15_ = _tmp13_;
+	_build_tool_free0 (_tmp12_);
+	tool = _tmp15_;
 	build_view_show (self->priv->build_view);
 	if (tool.compilation) {
+		Document* _tmp16_ = NULL;
+		gint _tmp17_;
 		gint num;
-		num = document_get_project_id (main_window_get_active_document (self));
+		_tmp16_ = main_window_get_active_document (self);
+		_tmp17_ = document_get_project_id (_tmp16_);
+		num = _tmp17_;
 		if (num == (-1)) {
-			document_save (main_window_get_active_document (self), TRUE, FALSE);
+			Document* _tmp18_ = NULL;
+			_tmp18_ = main_window_get_active_document (self);
+			document_save (_tmp18_, TRUE, FALSE);
 		} else {
-			Application* _tmp7_;
-			GList* _tmp8_;
+			Application* _tmp19_ = NULL;
+			Application* _tmp20_;
+			GList* _tmp21_ = NULL;
+			GList* _tmp22_;
 			GList* docs;
-			docs = (_tmp8_ = application_get_documents (_tmp7_ = application_get_default ()), _g_object_unref0 (_tmp7_), _tmp8_);
+			_tmp19_ = application_get_default ();
+			_tmp20_ = _tmp19_;
+			_tmp21_ = application_get_documents (_tmp20_);
+			_tmp22_ = _tmp21_;
+			_g_object_unref0 (_tmp20_);
+			docs = _tmp22_;
 			{
 				GList* doc_collection;
 				GList* doc_it;
 				doc_collection = docs;
 				for (doc_it = doc_collection; doc_it != NULL; doc_it = doc_it->next) {
+					Document* _tmp23_;
 					Document* doc;
-					doc = _g_object_ref0 ((Document*) doc_it->data);
+					_tmp23_ = _g_object_ref0 ((Document*) doc_it->data);
+					doc = _tmp23_;
 					{
-						if (document_get_project_id (doc) == num) {
+						gint _tmp24_;
+						_tmp24_ = document_get_project_id (doc);
+						if (_tmp24_ == num) {
 							document_save (doc, TRUE, FALSE);
 						}
 						_g_object_unref0 (doc);
 					}
 				}
 			}
-			__g_list_free_g_object_unref0 (docs);
+			__g_list_free__g_object_unref0_0 (docs);
 		}
 	}
-	_data7_->main_file = document_get_main_file (main_window_get_active_document (self));
-	self->priv->build_tool_runner = (_tmp9_ = build_tool_runner_new (_data7_->main_file, &tool, self->priv->build_view, self->priv->action_stop_exec), _g_object_unref0 (self->priv->build_tool_runner), _tmp9_);
+	_tmp25_ = main_window_get_active_document (self);
+	_tmp26_ = document_get_main_file (_tmp25_);
+	_data7_->main_file = _tmp26_;
+	_tmp27_ = build_tool_runner_new (_data7_->main_file, &tool, self->priv->build_view, self->priv->action_stop_exec);
+	_g_object_unref0 (self->priv->build_tool_runner);
+	self->priv->build_tool_runner = _tmp27_;
 	if (tool.compilation) {
-		g_signal_connect_data (self->priv->build_tool_runner, "finished", (GCallback) __lambda72__build_tool_runner_finished, block7_data_ref (_data7_), (GClosureNotify) block7_data_unref, 0);
+		g_signal_connect_data (self->priv->build_tool_runner, "finished", (GCallback) __lambda75__build_tool_runner_finished, block7_data_ref (_data7_), (GClosureNotify) block7_data_unref, 0);
 	}
 	build_tool_destroy (&tool);
 	_name = (_vala_array_free (_name, _name_length1, (GDestroyNotify) g_free), NULL);
 	block7_data_unref (_data7_);
+	_data7_ = NULL;
 }
 
 
 GtkAction* main_window_get_action_stop_exec (MainWindow* self) {
 	GtkAction* result = NULL;
+	GtkAction* _tmp0_;
 	g_return_val_if_fail (self != NULL, NULL);
-	result = _g_object_ref0 (self->priv->action_stop_exec);
+	_tmp0_ = _g_object_ref0 (self->priv->action_stop_exec);
+	result = _tmp0_;
 	return result;
 }
 
@@ -2550,8 +3143,10 @@ static void _main_window_documents_list_menu_activate_gtk_action_activate (GtkAc
 
 
 static void main_window_update_documents_list_menu (MainWindow* self) {
+	GList* _tmp0_ = NULL;
+	gint _tmp3_;
 	gint n;
-	guint _tmp1_ = 0U;
+	guint _tmp4_ = 0U;
 	guint id;
 	GSList* group;
 	g_return_if_fail (self != NULL);
@@ -2559,81 +3154,111 @@ static void main_window_update_documents_list_menu (MainWindow* self) {
 	if (self->priv->documents_list_menu_ui_id != 0) {
 		gtk_ui_manager_remove_ui (self->priv->ui_manager, self->priv->documents_list_menu_ui_id);
 	}
+	_tmp0_ = gtk_action_group_list_actions (self->priv->documents_list_action_group);
 	{
 		GList* action_collection;
 		GList* action_it;
-		action_collection = gtk_action_group_list_actions (self->priv->documents_list_action_group);
+		action_collection = _tmp0_;
 		for (action_it = action_collection; action_it != NULL; action_it = action_it->next) {
+			GtkAction* _tmp1_;
 			GtkAction* action;
-			action = _g_object_ref0 ((GtkAction*) action_it->data);
+			_tmp1_ = _g_object_ref0 ((GtkAction*) action_it->data);
+			action = _tmp1_;
 			{
-				guint _tmp0_;
-				g_signal_parse_name ("activate", GTK_TYPE_ACTION, &_tmp0_, NULL, FALSE);
-				g_signal_handlers_disconnect_matched (action, G_SIGNAL_MATCH_ID | G_SIGNAL_MATCH_FUNC | G_SIGNAL_MATCH_DATA, _tmp0_, 0, NULL, (GCallback) _main_window_documents_list_menu_activate_gtk_action_activate, self);
+				guint _tmp2_;
+				g_signal_parse_name ("activate", GTK_TYPE_ACTION, &_tmp2_, NULL, FALSE);
+				g_signal_handlers_disconnect_matched (action, G_SIGNAL_MATCH_ID | G_SIGNAL_MATCH_FUNC | G_SIGNAL_MATCH_DATA, _tmp2_, 0, NULL, (GCallback) _main_window_documents_list_menu_activate_gtk_action_activate, self);
 				gtk_action_group_remove_action (self->priv->documents_list_action_group, action);
 				_g_object_unref0 (action);
 			}
 		}
 		_g_list_free0 (action_collection);
 	}
-	n = gtk_notebook_get_n_pages ((GtkNotebook*) self->priv->documents_panel);
+	_tmp3_ = gtk_notebook_get_n_pages ((GtkNotebook*) self->priv->documents_panel);
+	n = _tmp3_;
 	if (n > 0) {
-		_tmp1_ = gtk_ui_manager_new_merge_id (self->priv->ui_manager);
+		guint _tmp5_;
+		_tmp5_ = gtk_ui_manager_new_merge_id (self->priv->ui_manager);
+		_tmp4_ = _tmp5_;
 	} else {
-		_tmp1_ = (guint) 0;
+		_tmp4_ = (guint) 0;
 	}
-	id = _tmp1_;
+	id = _tmp4_;
 	group = NULL;
 	{
 		gint i;
 		i = 0;
 		{
-			gboolean _tmp2_;
-			_tmp2_ = TRUE;
+			gboolean _tmp6_;
+			_tmp6_ = TRUE;
 			while (TRUE) {
+				GtkWidget* _tmp7_ = NULL;
+				DocumentTab* _tmp8_;
 				DocumentTab* tab;
-				char* action_name;
-				char* _tmp3_;
-				char* _tmp4_;
-				char* name;
-				char* tip;
-				char* _tmp5_;
-				char* accel;
+				gchar* _tmp9_ = NULL;
+				gchar* action_name;
+				gchar* _tmp10_ = NULL;
+				gchar* _tmp11_;
+				gchar* _tmp12_ = NULL;
+				gchar* _tmp13_;
+				gchar* name;
+				gchar* _tmp14_ = NULL;
+				gchar* tip;
+				gchar* _tmp15_ = NULL;
+				gchar* _tmp17_;
+				gchar* accel;
+				GtkRadioAction* _tmp18_ = NULL;
 				GtkRadioAction* action;
-				if (!_tmp2_) {
+				GSList* _tmp19_ = NULL;
+				DocumentTab* _tmp20_ = NULL;
+				if (!_tmp6_) {
 					i++;
 				}
-				_tmp2_ = FALSE;
+				_tmp6_ = FALSE;
 				if (!(i < n)) {
 					break;
 				}
-				tab = _g_object_ref0 (DOCUMENT_TAB (gtk_notebook_get_nth_page ((GtkNotebook*) self->priv->documents_panel, i)));
-				action_name = g_strdup_printf ("Tab_%d", i);
-				name = (_tmp4_ = string_replace (_tmp3_ = document_tab_get_name (tab), "_", "__"), _g_free0 (_tmp3_), _tmp4_);
-				tip = document_tab_get_menu_tip (tab);
-				_tmp5_ = NULL;
+				_tmp7_ = gtk_notebook_get_nth_page ((GtkNotebook*) self->priv->documents_panel, i);
+				_tmp8_ = _g_object_ref0 (DOCUMENT_TAB (_tmp7_));
+				tab = _tmp8_;
+				_tmp9_ = g_strdup_printf ("Tab_%d", i);
+				action_name = _tmp9_;
+				_tmp10_ = document_tab_get_name (tab);
+				_tmp11_ = _tmp10_;
+				_tmp12_ = string_replace (_tmp11_, "_", "__");
+				_tmp13_ = _tmp12_;
+				_g_free0 (_tmp11_);
+				name = _tmp13_;
+				_tmp14_ = document_tab_get_menu_tip (tab);
+				tip = _tmp14_;
 				if (i < 10) {
-					char* _tmp6_;
-					_tmp5_ = (_tmp6_ = g_strdup_printf ("<alt>%d", (i + 1) % 10), _g_free0 (_tmp5_), _tmp6_);
+					gchar* _tmp16_ = NULL;
+					_tmp16_ = g_strdup_printf ("<alt>%d", (i + 1) % 10);
+					_g_free0 (_tmp15_);
+					_tmp15_ = _tmp16_;
 				} else {
-					char* _tmp7_;
-					_tmp5_ = (_tmp7_ = NULL, _g_free0 (_tmp5_), _tmp7_);
+					_g_free0 (_tmp15_);
+					_tmp15_ = NULL;
 				}
-				accel = g_strdup (_tmp5_);
-				action = gtk_radio_action_new (action_name, name, tip, NULL, i);
+				_tmp17_ = g_strdup (_tmp15_);
+				accel = _tmp17_;
+				_tmp18_ = gtk_radio_action_new (action_name, name, tip, NULL, i);
+				action = _tmp18_;
 				if (group != NULL) {
 					gtk_radio_action_set_group (action, group);
 				}
-				group = gtk_radio_action_get_group (action);
+				_tmp19_ = gtk_radio_action_get_group (action);
+				group = _tmp19_;
 				gtk_action_group_add_action_with_accel (self->priv->documents_list_action_group, (GtkAction*) action, accel);
 				g_signal_connect_object ((GtkAction*) action, "activate", (GCallback) _main_window_documents_list_menu_activate_gtk_action_activate, self, 0);
 				gtk_ui_manager_add_ui (self->priv->ui_manager, id, "/MainMenu/DocumentsMenu/DocumentsListPlaceholder", action_name, action_name, GTK_UI_MANAGER_MENUITEM, FALSE);
-				if (tab == main_window_get_active_tab (self)) {
+				_tmp20_ = main_window_get_active_tab (self);
+				if (tab == _tmp20_) {
 					gtk_toggle_action_set_active ((GtkToggleAction*) action, TRUE);
 				}
 				_g_object_unref0 (action);
 				_g_free0 (accel);
-				_g_free0 (_tmp5_);
+				_g_free0 (_tmp15_);
 				_g_free0 (tip);
 				_g_free0 (name);
 				_g_free0 (action_name);
@@ -2646,15 +3271,21 @@ static void main_window_update_documents_list_menu (MainWindow* self) {
 
 
 static void main_window_documents_list_menu_activate (MainWindow* self, GtkAction* action) {
+	GtkRadioAction* _tmp0_;
 	GtkRadioAction* radio_action;
+	gboolean _tmp1_;
+	gint _tmp2_;
 	g_return_if_fail (self != NULL);
 	g_return_if_fail (action != NULL);
-	radio_action = _g_object_ref0 (GTK_RADIO_ACTION (action));
-	if (!gtk_toggle_action_get_active ((GtkToggleAction*) radio_action)) {
+	_tmp0_ = _g_object_ref0 (GTK_RADIO_ACTION (action));
+	radio_action = _tmp0_;
+	_tmp1_ = gtk_toggle_action_get_active ((GtkToggleAction*) radio_action);
+	if (!_tmp1_) {
 		_g_object_unref0 (radio_action);
 		return;
 	}
-	gtk_notebook_set_current_page ((GtkNotebook*) self->priv->documents_panel, gtk_radio_action_get_current_value (radio_action));
+	_tmp2_ = gtk_radio_action_get_current_value (radio_action);
+	gtk_notebook_set_current_page ((GtkNotebook*) self->priv->documents_panel, _tmp2_);
 	_g_object_unref0 (radio_action);
 }
 
@@ -2663,25 +3294,111 @@ static void main_window_documents_list_menu_activate (MainWindow* self, GtkActio
      *    ACTIONS SENSITIVITY    *
      *****************************/
 static void main_window_set_file_actions_sensitivity (MainWindow* self, gboolean sensitive) {
+	gchar* _tmp0_;
+	gchar* _tmp1_;
+	gchar* _tmp2_;
+	gchar* _tmp3_;
+	gchar* _tmp4_;
+	gchar* _tmp5_;
+	gchar* _tmp6_;
+	gchar* _tmp7_;
+	gchar* _tmp8_;
+	gchar* _tmp9_;
+	gchar* _tmp10_;
+	gchar* _tmp11_;
+	gchar* _tmp12_;
+	gchar* _tmp13_;
+	gchar* _tmp14_;
+	gchar* _tmp15_;
+	gchar* _tmp16_;
+	gchar* _tmp17_;
+	gchar* _tmp18_;
+	gchar* _tmp19_;
+	gchar* _tmp20_;
+	gchar* _tmp21_;
+	gchar* _tmp22_;
+	gchar* _tmp23_;
+	gchar* _tmp24_;
+	gchar* _tmp25_;
+	gchar** _tmp26_ = NULL;
+	gchar** file_actions;
 	gint file_actions_length1;
 	gint _file_actions_size_;
-	char** _tmp1_;
-	char** _tmp0_ = NULL;
-	char** file_actions;
 	g_return_if_fail (self != NULL);
-	file_actions = (_tmp1_ = (_tmp0_ = g_new0 (char*, 26 + 1), _tmp0_[0] = g_strdup ("FileSave"), _tmp0_[1] = g_strdup ("FileSaveAs"), _tmp0_[2] = g_strdup ("FileClose"), _tmp0_[3] = g_strdup ("EditUndo"), _tmp0_[4] = g_strdup ("EditRedo"), _tmp0_[5] = g_strdup ("EditCut"), _tmp0_[6] = g_strdup ("EditCopy"), _tmp0_[7] = g_strdup ("EditPaste"), _tmp0_[8] = g_strdup ("EditDelete"), _tmp0_[9] = g_strdup ("EditSelectAll"), _tmp0_[10] = g_strdup ("EditComment"), _tmp0_[11] = g_strdup ("EditUncomment"), _tmp0_[12] = g_strdup ("ViewZoomIn"), _tmp0_[13] = g_strdup ("ViewZoomOut"), _tmp0_[14] = g_strdup ("ViewZoomReset"), _tmp0_[15] = g_strdup ("DocumentsSaveAll"), _tmp0_[16] = g_strdup ("DocumentsCloseAll"), _tmp0_[17] = g_strdup ("DocumentsPrevious"), _tmp0_[18] = g_strdup ("DocumentsNext"), _tmp0_[19] = g_strdup ("SearchFind"), _tmp0_[20] = g_strdup ("SearchReplace"), _tmp0_[21] = g_strdup ("SearchGoToLine"), _tmp0_[22] = g_strdup ("BuildClean"), _tmp0_[23] = g_strdup ("BuildViewLog"
 ), _tmp0_[24] = g_strdup ("ProjectsConfigCurrent"), _tmp0_[25] = g_strdup ("FileCreateTemplate"), _tmp0_), file_actions_length1 = 26, _file_actions_size_ = file_actions_length1, _tmp1_);
+	_tmp0_ = g_strdup ("FileSave");
+	_tmp1_ = g_strdup ("FileSaveAs");
+	_tmp2_ = g_strdup ("FileClose");
+	_tmp3_ = g_strdup ("EditUndo");
+	_tmp4_ = g_strdup ("EditRedo");
+	_tmp5_ = g_strdup ("EditCut");
+	_tmp6_ = g_strdup ("EditCopy");
+	_tmp7_ = g_strdup ("EditPaste");
+	_tmp8_ = g_strdup ("EditDelete");
+	_tmp9_ = g_strdup ("EditSelectAll");
+	_tmp10_ = g_strdup ("EditComment");
+	_tmp11_ = g_strdup ("EditUncomment");
+	_tmp12_ = g_strdup ("ViewZoomIn");
+	_tmp13_ = g_strdup ("ViewZoomOut");
+	_tmp14_ = g_strdup ("ViewZoomReset");
+	_tmp15_ = g_strdup ("DocumentsSaveAll");
+	_tmp16_ = g_strdup ("DocumentsCloseAll");
+	_tmp17_ = g_strdup ("DocumentsPrevious");
+	_tmp18_ = g_strdup ("DocumentsNext");
+	_tmp19_ = g_strdup ("SearchFind");
+	_tmp20_ = g_strdup ("SearchReplace");
+	_tmp21_ = g_strdup ("SearchGoToLine");
+	_tmp22_ = g_strdup ("BuildClean");
+	_tmp23_ = g_strdup ("BuildViewLog");
+	_tmp24_ = g_strdup ("ProjectsConfigCurrent");
+	_tmp25_ = g_strdup ("FileCreateTemplate");
+	_tmp26_ = g_new0 (gchar*, 26 + 1);
+	_tmp26_[0] = _tmp0_;
+	_tmp26_[1] = _tmp1_;
+	_tmp26_[2] = _tmp2_;
+	_tmp26_[3] = _tmp3_;
+	_tmp26_[4] = _tmp4_;
+	_tmp26_[5] = _tmp5_;
+	_tmp26_[6] = _tmp6_;
+	_tmp26_[7] = _tmp7_;
+	_tmp26_[8] = _tmp8_;
+	_tmp26_[9] = _tmp9_;
+	_tmp26_[10] = _tmp10_;
+	_tmp26_[11] = _tmp11_;
+	_tmp26_[12] = _tmp12_;
+	_tmp26_[13] = _tmp13_;
+	_tmp26_[14] = _tmp14_;
+	_tmp26_[15] = _tmp15_;
+	_tmp26_[16] = _tmp16_;
+	_tmp26_[17] = _tmp17_;
+	_tmp26_[18] = _tmp18_;
+	_tmp26_[19] = _tmp19_;
+	_tmp26_[20] = _tmp20_;
+	_tmp26_[21] = _tmp21_;
+	_tmp26_[22] = _tmp22_;
+	_tmp26_[23] = _tmp23_;
+	_tmp26_[24] = _tmp24_;
+	_tmp26_[25] = _tmp25_;
+	file_actions = _tmp26_;
+	file_actions_length1 = 26;
+	_file_actions_size_ = 26;
 	{
-		char** file_action_collection;
+		gchar** file_action_collection;
 		int file_action_collection_length1;
 		int file_action_it;
 		file_action_collection = file_actions;
 		file_action_collection_length1 = file_actions_length1;
 		for (file_action_it = 0; file_action_it < file_actions_length1; file_action_it = file_action_it + 1) {
-			char* file_action;
-			file_action = g_strdup (file_action_collection[file_action_it]);
+			gchar* _tmp27_;
+			gchar* file_action;
+			_tmp27_ = g_strdup (file_action_collection[file_action_it]);
+			file_action = _tmp27_;
 			{
+				GtkAction* _tmp28_ = NULL;
+				GtkAction* _tmp29_;
 				GtkAction* action;
-				action = _g_object_ref0 (gtk_action_group_get_action (self->priv->action_group, file_action));
+				_tmp28_ = gtk_action_group_get_action (self->priv->action_group, file_action);
+				_tmp29_ = _g_object_ref0 (_tmp28_);
+				action = _tmp29_;
 				gtk_action_set_sensitive (action, sensitive);
 				_g_object_unref0 (action);
 				_g_free0 (file_action);
@@ -2695,50 +3412,88 @@ static void main_window_set_file_actions_sensitivity (MainWindow* self, gboolean
 
 
 static void main_window_set_undo_sensitivity (MainWindow* self) {
+	DocumentTab* _tmp0_ = NULL;
 	g_return_if_fail (self != NULL);
-	if (main_window_get_active_tab (self) != NULL) {
+	_tmp0_ = main_window_get_active_tab (self);
+	if (_tmp0_ != NULL) {
+		GtkAction* _tmp1_ = NULL;
+		GtkAction* _tmp2_;
 		GtkAction* action;
-		gboolean _tmp0_;
-		action = _g_object_ref0 (gtk_action_group_get_action (self->priv->action_group, "EditUndo"));
-		gtk_action_set_sensitive (action, (g_object_get ((GtkSourceBuffer*) main_window_get_active_document (self), "can-undo", &_tmp0_, NULL), _tmp0_));
+		Document* _tmp3_ = NULL;
+		gboolean _tmp4_;
+		_tmp1_ = gtk_action_group_get_action (self->priv->action_group, "EditUndo");
+		_tmp2_ = _g_object_ref0 (_tmp1_);
+		action = _tmp2_;
+		_tmp3_ = main_window_get_active_document (self);
+		g_object_get ((GtkSourceBuffer*) _tmp3_, "can-undo", &_tmp4_, NULL);
+		gtk_action_set_sensitive (action, _tmp4_);
 		_g_object_unref0 (action);
 	}
 }
 
 
 static void main_window_set_redo_sensitivity (MainWindow* self) {
+	DocumentTab* _tmp0_ = NULL;
 	g_return_if_fail (self != NULL);
-	if (main_window_get_active_tab (self) != NULL) {
+	_tmp0_ = main_window_get_active_tab (self);
+	if (_tmp0_ != NULL) {
+		GtkAction* _tmp1_ = NULL;
+		GtkAction* _tmp2_;
 		GtkAction* action;
-		gboolean _tmp0_;
-		action = _g_object_ref0 (gtk_action_group_get_action (self->priv->action_group, "EditRedo"));
-		gtk_action_set_sensitive (action, (g_object_get ((GtkSourceBuffer*) main_window_get_active_document (self), "can-redo", &_tmp0_, NULL), _tmp0_));
+		Document* _tmp3_ = NULL;
+		gboolean _tmp4_;
+		_tmp1_ = gtk_action_group_get_action (self->priv->action_group, "EditRedo");
+		_tmp2_ = _g_object_ref0 (_tmp1_);
+		action = _tmp2_;
+		_tmp3_ = main_window_get_active_document (self);
+		g_object_get ((GtkSourceBuffer*) _tmp3_, "can-redo", &_tmp4_, NULL);
+		gtk_action_set_sensitive (action, _tmp4_);
 		_g_object_unref0 (action);
 	}
 }
 
 
 static void main_window_set_documents_move_to_new_window_sensitivity (MainWindow* self, gboolean sensitive) {
+	GtkAction* _tmp0_ = NULL;
+	GtkAction* _tmp1_;
 	GtkAction* action;
 	g_return_if_fail (self != NULL);
-	action = _g_object_ref0 (gtk_action_group_get_action (self->priv->action_group, "DocumentsMoveToNewWindow"));
+	_tmp0_ = gtk_action_group_get_action (self->priv->action_group, "DocumentsMoveToNewWindow");
+	_tmp1_ = _g_object_ref0 (_tmp0_);
+	action = _tmp1_;
 	gtk_action_set_sensitive (action, sensitive);
 	_g_object_unref0 (action);
 }
 
 
 static void main_window_update_next_prev_doc_sensitivity (MainWindow* self) {
+	DocumentTab* _tmp0_ = NULL;
 	g_return_if_fail (self != NULL);
-	if (main_window_get_active_tab (self) != NULL) {
+	_tmp0_ = main_window_get_active_tab (self);
+	if (_tmp0_ != NULL) {
+		GtkAction* _tmp1_ = NULL;
+		GtkAction* _tmp2_;
 		GtkAction* action_previous;
+		GtkAction* _tmp3_ = NULL;
+		GtkAction* _tmp4_;
 		GtkAction* action_next;
+		DocumentTab* _tmp5_ = NULL;
+		gint _tmp6_;
 		gint current_page;
+		gint _tmp7_;
 		gint nb_pages;
-		action_previous = _g_object_ref0 (gtk_action_group_get_action (self->priv->action_group, "DocumentsPrevious"));
-		action_next = _g_object_ref0 (gtk_action_group_get_action (self->priv->action_group, "DocumentsNext"));
-		current_page = gtk_notebook_page_num ((GtkNotebook*) self->priv->documents_panel, (GtkWidget*) main_window_get_active_tab (self));
+		_tmp1_ = gtk_action_group_get_action (self->priv->action_group, "DocumentsPrevious");
+		_tmp2_ = _g_object_ref0 (_tmp1_);
+		action_previous = _tmp2_;
+		_tmp3_ = gtk_action_group_get_action (self->priv->action_group, "DocumentsNext");
+		_tmp4_ = _g_object_ref0 (_tmp3_);
+		action_next = _tmp4_;
+		_tmp5_ = main_window_get_active_tab (self);
+		_tmp6_ = gtk_notebook_page_num ((GtkNotebook*) self->priv->documents_panel, (GtkWidget*) _tmp5_);
+		current_page = _tmp6_;
 		gtk_action_set_sensitive (action_previous, current_page > 0);
-		nb_pages = gtk_notebook_get_n_pages ((GtkNotebook*) self->priv->documents_panel);
+		_tmp7_ = gtk_notebook_get_n_pages ((GtkNotebook*) self->priv->documents_panel);
+		nb_pages = _tmp7_;
 		gtk_action_set_sensitive (action_next, current_page < (nb_pages - 1));
 		_g_object_unref0 (action_next);
 		_g_object_unref0 (action_previous);
@@ -2746,10 +3501,10 @@ static void main_window_update_next_prev_doc_sensitivity (MainWindow* self) {
 }
 
 
-static gboolean _vala_string_array_contains (char** stack, int stack_length, char* needle) {
+static gboolean _vala_string_array_contains (gchar** stack, int stack_length, gchar* needle) {
 	int i;
 	for (i = 0; i < stack_length; i++) {
-		if (_vala_strcmp0 (stack[i], needle) == 0) {
+		if (g_strcmp0 (stack[i], needle) == 0) {
 			return TRUE;
 		}
 	}
@@ -2758,124 +3513,233 @@ static gboolean _vala_string_array_contains (char** stack, int stack_length, cha
 
 
 static void main_window_update_build_tools_sensitivity (MainWindow* self) {
+	GtkAction* _tmp0_ = NULL;
+	GtkAction* _tmp1_;
 	GtkAction* clean_action;
+	GtkAction* _tmp2_ = NULL;
+	GtkAction* _tmp3_;
 	GtkAction* view_log_action;
-	gboolean _tmp0_ = FALSE;
-	char* _tmp1_;
-	char* _tmp2_;
-	char* ext;
-	AppSettings* _tmp3_;
-	GeeLinkedList* _tmp4_;
+	gboolean _tmp4_ = FALSE;
+	DocumentTab* _tmp5_ = NULL;
+	Document* _tmp9_ = NULL;
+	gboolean _tmp10_;
+	gboolean is_tex;
+	Document* _tmp11_ = NULL;
+	GFile* _tmp12_ = NULL;
+	GFile* _tmp13_;
+	gchar* _tmp14_ = NULL;
+	gchar* _tmp15_;
+	gchar* path;
+	gchar* _tmp16_ = NULL;
+	gchar* ext;
+	AppSettings* _tmp17_ = NULL;
+	AppSettings* _tmp18_;
+	GeeLinkedList* _tmp19_ = NULL;
+	GeeLinkedList* _tmp20_;
 	GeeLinkedList* tools;
 	gint i;
 	g_return_if_fail (self != NULL);
-	clean_action = _g_object_ref0 (gtk_action_group_get_action (self->priv->action_group, "BuildClean"));
-	view_log_action = _g_object_ref0 (gtk_action_group_get_action (self->priv->action_group, "BuildViewLog"));
-	if (main_window_get_active_tab (self) == NULL) {
-		_tmp0_ = TRUE;
+	_tmp0_ = gtk_action_group_get_action (self->priv->action_group, "BuildClean");
+	_tmp1_ = _g_object_ref0 (_tmp0_);
+	clean_action = _tmp1_;
+	_tmp2_ = gtk_action_group_get_action (self->priv->action_group, "BuildViewLog");
+	_tmp3_ = _g_object_ref0 (_tmp2_);
+	view_log_action = _tmp3_;
+	_tmp5_ = main_window_get_active_tab (self);
+	if (_tmp5_ == NULL) {
+		_tmp4_ = TRUE;
 	} else {
-		_tmp0_ = document_get_location (main_window_get_active_document (self)) == NULL;
+		Document* _tmp6_ = NULL;
+		GFile* _tmp7_ = NULL;
+		GFile* _tmp8_;
+		_tmp6_ = main_window_get_active_document (self);
+		_tmp7_ = document_get_main_file (_tmp6_);
+		_tmp8_ = _tmp7_;
+		_tmp4_ = _tmp8_ == NULL;
+		_g_object_unref0 (_tmp8_);
 	}
-	if (_tmp0_) {
+	if (_tmp4_) {
 		gtk_action_group_set_sensitive (self->priv->build_tools_action_group, FALSE);
 		gtk_action_set_sensitive (clean_action, FALSE);
 		gtk_action_set_sensitive (view_log_action, FALSE);
 		_g_object_unref0 (view_log_action);
 		_g_object_unref0 (clean_action);
 		return;
-	} else {
-		gboolean is_tex;
-		gtk_action_group_set_sensitive (self->priv->build_tools_action_group, TRUE);
-		is_tex = document_is_tex_document (main_window_get_active_document (self));
-		gtk_action_set_sensitive (clean_action, is_tex);
-		gtk_action_set_sensitive (view_log_action, is_tex);
-	}
-	ext = (_tmp2_ = utils_get_extension (_tmp1_ = g_file_get_parse_name (document_get_location (main_window_get_active_document (self)))), _g_free0 (_tmp1_), _tmp2_);
-	tools = (_tmp4_ = app_settings_get_build_tools (_tmp3_ = app_settings_get_default ()), _g_object_unref0 (_tmp3_), _tmp4_);
+	}
+	gtk_action_group_set_sensitive (self->priv->build_tools_action_group, TRUE);
+	_tmp9_ = main_window_get_active_document (self);
+	_tmp10_ = document_is_main_file_a_tex_file (_tmp9_);
+	is_tex = _tmp10_;
+	gtk_action_set_sensitive (clean_action, is_tex);
+	gtk_action_set_sensitive (view_log_action, is_tex);
+	_tmp11_ = main_window_get_active_document (self);
+	_tmp12_ = document_get_main_file (_tmp11_);
+	_tmp13_ = _tmp12_;
+	_tmp14_ = g_file_get_parse_name (_tmp13_);
+	_tmp15_ = _tmp14_;
+	_g_object_unref0 (_tmp13_);
+	path = _tmp15_;
+	_tmp16_ = utils_get_extension (path);
+	ext = _tmp16_;
+	_tmp17_ = app_settings_get_default ();
+	_tmp18_ = _tmp17_;
+	_tmp19_ = app_settings_get_build_tools (_tmp18_);
+	_tmp20_ = _tmp19_;
+	_g_object_unref0 (_tmp18_);
+	tools = _tmp20_;
 	i = 0;
 	{
-		GeeIterator* _tool_it;
-		_tool_it = gee_abstract_collection_iterator ((GeeAbstractCollection*) tools);
+		GeeLinkedList* _tmp21_;
+		GeeLinkedList* _tool_list;
+		gint _tmp22_;
+		gint _tool_size;
+		gint _tool_index;
+		_tmp21_ = _g_object_ref0 (tools);
+		_tool_list = _tmp21_;
+		_tmp22_ = gee_collection_get_size ((GeeCollection*) _tool_list);
+		_tool_size = _tmp22_;
+		_tool_index = -1;
 		while (TRUE) {
-			BuildTool* _tmp5_;
-			BuildTool _tmp6_ = {0};
-			BuildTool _tmp7_;
+			gpointer _tmp23_ = NULL;
+			BuildTool* _tmp24_;
+			BuildTool _tmp25_;
+			BuildTool _tmp26_ = {0};
+			BuildTool _tmp27_;
 			BuildTool tool;
+			gchar** _tmp28_;
+			gchar** _tmp29_ = NULL;
+			gchar** extensions;
 			gint extensions_length1;
 			gint _extensions_size_;
-			char** _tmp9_;
-			char** _tmp8_;
-			char** extensions;
-			gboolean _tmp10_ = FALSE;
+			gboolean _tmp30_ = FALSE;
+			gint _tmp31_;
 			gboolean sensitive;
-			char* _tmp11_;
-			char* _tmp12_;
-			GtkAction* _tmp13_;
+			gchar* _tmp32_ = NULL;
+			gchar* _tmp33_;
+			gchar* _tmp34_ = NULL;
+			gchar* _tmp35_;
+			GtkAction* _tmp36_ = NULL;
+			GtkAction* _tmp37_;
+			GtkAction* _tmp38_;
 			GtkAction* action;
-			if (!gee_iterator_next (_tool_it)) {
+			_tool_index = _tool_index + 1;
+			if (!(_tool_index < _tool_size)) {
 				break;
 			}
-			tool = (_tmp7_ = (build_tool_copy (_tmp5_ = (BuildTool*) gee_iterator_get (_tool_it), &_tmp6_), _tmp6_), _build_tool_free0 (_tmp5_), _tmp7_);
-			extensions = (_tmp9_ = _tmp8_ = g_strsplit (tool.extensions, " ", 0), extensions_length1 = _vala_array_length (_tmp8_), _extensions_size_ = extensions_length1, _tmp9_);
-			if (string_get_length (tool.extensions) == 0) {
-				_tmp10_ = TRUE;
+			_tmp23_ = gee_abstract_list_get ((GeeAbstractList*) _tool_list, _tool_index);
+			_tmp24_ = (BuildTool*) _tmp23_;
+			build_tool_copy (_tmp24_, &_tmp26_);
+			_tmp25_ = _tmp26_;
+			_tmp27_ = _tmp25_;
+			_build_tool_free0 (_tmp24_);
+			tool = _tmp27_;
+			_tmp29_ = _tmp28_ = g_strsplit (tool.extensions, " ", 0);
+			extensions = _tmp29_;
+			extensions_length1 = _vala_array_length (_tmp28_);
+			_extensions_size_ = _vala_array_length (_tmp28_);
+			_tmp31_ = strlen (tool.extensions);
+			if (_tmp31_ == 0) {
+				_tmp30_ = TRUE;
 			} else {
-				_tmp10_ = _vala_string_array_contains (extensions, extensions_length1, ext);
+				_tmp30_ = _vala_string_array_contains (extensions, extensions_length1, ext);
 			}
-			sensitive = _tmp10_;
-			action = (_tmp13_ = _g_object_ref0 (gtk_action_group_get_action (self->priv->build_tools_action_group, _tmp12_ = g_strconcat ("BuildTool_", _tmp11_ = g_strdup_printf ("%i", i), NULL))), _g_free0 (_tmp12_), _g_free0 (_tmp11_), _tmp13_);
+			sensitive = _tmp30_;
+			_tmp32_ = g_strdup_printf ("%i", i);
+			_tmp33_ = _tmp32_;
+			_tmp34_ = g_strconcat ("BuildTool_", _tmp33_, NULL);
+			_tmp35_ = _tmp34_;
+			_tmp36_ = gtk_action_group_get_action (self->priv->build_tools_action_group, _tmp35_);
+			_tmp37_ = _g_object_ref0 (_tmp36_);
+			_tmp38_ = _tmp37_;
+			_g_free0 (_tmp35_);
+			_g_free0 (_tmp33_);
+			action = _tmp38_;
 			gtk_action_set_sensitive (action, sensitive);
 			i++;
 			_g_object_unref0 (action);
 			extensions = (_vala_array_free (extensions, extensions_length1, (GDestroyNotify) g_free), NULL);
 			build_tool_destroy (&tool);
 		}
-		_g_object_unref0 (_tool_it);
+		_g_object_unref0 (_tool_list);
 	}
 	_g_free0 (ext);
+	_g_free0 (path);
 	_g_object_unref0 (view_log_action);
 	_g_object_unref0 (clean_action);
 }
 
 
 void main_window_update_config_project_sensitivity (MainWindow* self) {
+	GtkAction* _tmp0_ = NULL;
+	GtkAction* _tmp1_;
 	GtkAction* action;
-	gboolean _tmp0_ = FALSE;
+	gboolean _tmp2_ = FALSE;
+	DocumentTab* _tmp3_ = NULL;
 	g_return_if_fail (self != NULL);
-	action = _g_object_ref0 (gtk_action_group_get_action (self->priv->action_group, "ProjectsConfigCurrent"));
-	if (main_window_get_active_tab (self) != NULL) {
-		_tmp0_ = document_get_project_id (main_window_get_active_document (self)) != (-1);
+	_tmp0_ = gtk_action_group_get_action (self->priv->action_group, "ProjectsConfigCurrent");
+	_tmp1_ = _g_object_ref0 (_tmp0_);
+	action = _tmp1_;
+	_tmp3_ = main_window_get_active_tab (self);
+	if (_tmp3_ != NULL) {
+		Document* _tmp4_ = NULL;
+		gint _tmp5_;
+		_tmp4_ = main_window_get_active_document (self);
+		_tmp5_ = document_get_project_id (_tmp4_);
+		_tmp2_ = _tmp5_ != (-1);
 	} else {
-		_tmp0_ = FALSE;
+		_tmp2_ = FALSE;
 	}
-	gtk_action_set_sensitive (action, _tmp0_);
+	gtk_action_set_sensitive (action, _tmp2_);
 	_g_object_unref0 (action);
 }
 
 
 static void main_window_selection_changed (MainWindow* self) {
+	DocumentTab* _tmp0_ = NULL;
 	g_return_if_fail (self != NULL);
-	if (main_window_get_active_tab (self) != NULL) {
+	_tmp0_ = main_window_get_active_tab (self);
+	if (_tmp0_ != NULL) {
+		Document* _tmp1_ = NULL;
+		gboolean _tmp2_;
 		gboolean has_selection;
+		gchar* _tmp3_;
+		gchar* _tmp4_;
+		gchar* _tmp5_;
+		gchar** _tmp6_ = NULL;
+		gchar** selection_actions;
 		gint selection_actions_length1;
 		gint _selection_actions_size_;
-		char** _tmp1_;
-		char** _tmp0_ = NULL;
-		char** selection_actions;
-		has_selection = gtk_text_buffer_get_has_selection ((GtkTextBuffer*) main_window_get_active_document (self));
-		selection_actions = (_tmp1_ = (_tmp0_ = g_new0 (char*, 3 + 1), _tmp0_[0] = g_strdup ("EditCut"), _tmp0_[1] = g_strdup ("EditCopy"), _tmp0_[2] = g_strdup ("EditDelete"), _tmp0_), selection_actions_length1 = 3, _selection_actions_size_ = selection_actions_length1, _tmp1_);
+		_tmp1_ = main_window_get_active_document (self);
+		_tmp2_ = gtk_text_buffer_get_has_selection ((GtkTextBuffer*) _tmp1_);
+		has_selection = _tmp2_;
+		_tmp3_ = g_strdup ("EditCut");
+		_tmp4_ = g_strdup ("EditCopy");
+		_tmp5_ = g_strdup ("EditDelete");
+		_tmp6_ = g_new0 (gchar*, 3 + 1);
+		_tmp6_[0] = _tmp3_;
+		_tmp6_[1] = _tmp4_;
+		_tmp6_[2] = _tmp5_;
+		selection_actions = _tmp6_;
+		selection_actions_length1 = 3;
+		_selection_actions_size_ = 3;
 		{
-			char** selection_action_collection;
+			gchar** selection_action_collection;
 			int selection_action_collection_length1;
 			int selection_action_it;
 			selection_action_collection = selection_actions;
 			selection_action_collection_length1 = selection_actions_length1;
 			for (selection_action_it = 0; selection_action_it < selection_actions_length1; selection_action_it = selection_action_it + 1) {
-				char* selection_action;
-				selection_action = g_strdup (selection_action_collection[selection_action_it]);
+				gchar* _tmp7_;
+				gchar* selection_action;
+				_tmp7_ = g_strdup (selection_action_collection[selection_action_it]);
+				selection_action = _tmp7_;
 				{
+					GtkAction* _tmp8_ = NULL;
+					GtkAction* _tmp9_;
 					GtkAction* action;
-					action = _g_object_ref0 (gtk_action_group_get_action (self->priv->action_group, selection_action));
+					_tmp8_ = gtk_action_group_get_action (self->priv->action_group, selection_action);
+					_tmp9_ = _g_object_ref0 (_tmp8_);
+					action = _tmp9_;
 					gtk_action_set_sensitive (action, has_selection);
 					_g_object_unref0 (action);
 					_g_free0 (selection_action);
@@ -2891,108 +3755,150 @@ static void main_window_selection_changed (MainWindow* self) {
      *    CALLBACKS
      ******************/
 void main_window_on_file_new (MainWindow* self) {
-	Templates* _tmp0_;
+	Templates* _tmp0_ = NULL;
+	Templates* _tmp1_;
 	g_return_if_fail (self != NULL);
-	templates_show_dialog_new (_tmp0_ = templates_get_default (), self);
-	_g_object_unref0 (_tmp0_);
+	_tmp0_ = templates_get_default ();
+	_tmp1_ = _tmp0_;
+	templates_show_dialog_new (_tmp1_, self);
+	_g_object_unref0 (_tmp1_);
 }
 
 
 void main_window_on_new_window (MainWindow* self) {
-	Application* _tmp0_;
-	MainWindow* _tmp1_;
+	Application* _tmp0_ = NULL;
+	Application* _tmp1_;
+	MainWindow* _tmp2_ = NULL;
+	MainWindow* _tmp3_;
 	g_return_if_fail (self != NULL);
-	_tmp1_ = application_create_window (_tmp0_ = application_get_default (), NULL);
+	_tmp0_ = application_get_default ();
+	_tmp1_ = _tmp0_;
+	_tmp2_ = application_create_window (_tmp1_, NULL);
+	_tmp3_ = _tmp2_;
+	_g_object_unref0 (_tmp3_);
 	_g_object_unref0 (_tmp1_);
-	_g_object_unref0 (_tmp0_);
 }
 
 
-static void _g_slist_free_g_object_unref (GSList* self) {
-	g_slist_foreach (self, (GFunc) g_object_unref, NULL);
+static void _g_slist_free__g_object_unref0_ (GSList* self) {
+	g_slist_foreach (self, (GFunc) _g_object_unref0_, NULL);
 	g_slist_free (self);
 }
 
 
 void main_window_on_file_open (MainWindow* self) {
+	const gchar* _tmp0_ = NULL;
+	GtkFileChooserDialog* _tmp1_ = NULL;
 	GtkFileChooserDialog* file_chooser;
 	GSList* files_to_open;
-	char* _tmp1_;
+	gint _tmp2_;
+	gchar* _tmp4_ = NULL;
 	g_return_if_fail (self != NULL);
-	file_chooser = g_object_ref_sink ((GtkFileChooserDialog*) gtk_file_chooser_dialog_new (_ ("Open Files"), (GtkWindow*) self, GTK_FILE_CHOOSER_ACTION_OPEN, GTK_STOCK_CANCEL, GTK_RESPONSE_CANCEL, GTK_STOCK_OPEN, GTK_RESPONSE_ACCEPT, NULL, NULL));
+	_tmp0_ = _ ("Open Files");
+	_tmp1_ = (GtkFileChooserDialog*) gtk_file_chooser_dialog_new (_tmp0_, (GtkWindow*) self, GTK_FILE_CHOOSER_ACTION_OPEN, GTK_STOCK_CANCEL, GTK_RESPONSE_CANCEL, GTK_STOCK_OPEN, GTK_RESPONSE_ACCEPT, NULL, NULL);
+	file_chooser = g_object_ref_sink (_tmp1_);
 	if (self->priv->file_chooser_current_folder != NULL) {
 		gtk_file_chooser_set_current_folder ((GtkFileChooser*) file_chooser, self->priv->file_chooser_current_folder);
 	}
 	gtk_file_chooser_set_select_multiple ((GtkFileChooser*) file_chooser, TRUE);
 	files_to_open = NULL;
-	if (gtk_dialog_run ((GtkDialog*) file_chooser) == GTK_RESPONSE_ACCEPT) {
-		GSList* _tmp0_;
-		files_to_open = (_tmp0_ = gtk_file_chooser_get_files ((GtkFileChooser*) file_chooser), __g_slist_free_g_object_unref0 (files_to_open), _tmp0_);
+	_tmp2_ = gtk_dialog_run ((GtkDialog*) file_chooser);
+	if (_tmp2_ == GTK_RESPONSE_ACCEPT) {
+		GSList* _tmp3_ = NULL;
+		_tmp3_ = gtk_file_chooser_get_files ((GtkFileChooser*) file_chooser);
+		__g_slist_free__g_object_unref0_0 (files_to_open);
+		files_to_open = _tmp3_;
 	}
-	self->priv->file_chooser_current_folder = (_tmp1_ = gtk_file_chooser_get_current_folder ((GtkFileChooser*) file_chooser), _g_free0 (self->priv->file_chooser_current_folder), _tmp1_);
+	_tmp4_ = gtk_file_chooser_get_current_folder ((GtkFileChooser*) file_chooser);
+	_g_free0 (self->priv->file_chooser_current_folder);
+	self->priv->file_chooser_current_folder = _tmp4_;
 	gtk_object_destroy ((GtkObject*) file_chooser);
 	{
 		GSList* file_collection;
 		GSList* file_it;
 		file_collection = files_to_open;
 		for (file_it = file_collection; file_it != NULL; file_it = file_it->next) {
+			GFile* _tmp5_;
 			GFile* file;
-			file = _g_object_ref0 ((GFile*) file_it->data);
+			_tmp5_ = _g_object_ref0 ((GFile*) file_it->data);
+			file = _tmp5_;
 			{
-				DocumentTab* _tmp2_;
-				_tmp2_ = main_window_open_document (self, file);
-				_g_object_unref0 (_tmp2_);
+				DocumentTab* _tmp6_ = NULL;
+				DocumentTab* _tmp7_;
+				_tmp6_ = main_window_open_document (self, file);
+				_tmp7_ = _tmp6_;
+				_g_object_unref0 (_tmp7_);
 				_g_object_unref0 (file);
 			}
 		}
 	}
-	__g_slist_free_g_object_unref0 (files_to_open);
+	__g_slist_free__g_object_unref0_0 (files_to_open);
 	_g_object_unref0 (file_chooser);
 }
 
 
 void main_window_on_file_save (MainWindow* self) {
+	DocumentTab* _tmp0_ = NULL;
+	Document* _tmp1_ = NULL;
 	g_return_if_fail (self != NULL);
-	g_return_if_fail (main_window_get_active_tab (self) != NULL);
-	main_window_save_document (self, main_window_get_active_document (self), FALSE);
+	_tmp0_ = main_window_get_active_tab (self);
+	g_return_if_fail (_tmp0_ != NULL);
+	_tmp1_ = main_window_get_active_document (self);
+	main_window_save_document (self, _tmp1_, FALSE);
 }
 
 
 void main_window_on_file_save_as (MainWindow* self) {
+	DocumentTab* _tmp0_ = NULL;
+	Document* _tmp1_ = NULL;
 	g_return_if_fail (self != NULL);
-	g_return_if_fail (main_window_get_active_tab (self) != NULL);
-	main_window_save_document (self, main_window_get_active_document (self), TRUE);
+	_tmp0_ = main_window_get_active_tab (self);
+	g_return_if_fail (_tmp0_ != NULL);
+	_tmp1_ = main_window_get_active_document (self);
+	main_window_save_document (self, _tmp1_, TRUE);
 }
 
 
 void main_window_on_create_template (MainWindow* self) {
-	Templates* _tmp0_;
+	DocumentTab* _tmp0_ = NULL;
+	Templates* _tmp1_ = NULL;
+	Templates* _tmp2_;
 	g_return_if_fail (self != NULL);
-	g_return_if_fail (main_window_get_active_tab (self) != NULL);
-	templates_show_dialog_create (_tmp0_ = templates_get_default (), self);
-	_g_object_unref0 (_tmp0_);
+	_tmp0_ = main_window_get_active_tab (self);
+	g_return_if_fail (_tmp0_ != NULL);
+	_tmp1_ = templates_get_default ();
+	_tmp2_ = _tmp1_;
+	templates_show_dialog_create (_tmp2_, self);
+	_g_object_unref0 (_tmp2_);
 }
 
 
 void main_window_on_delete_template (MainWindow* self) {
-	Templates* _tmp0_;
+	Templates* _tmp0_ = NULL;
+	Templates* _tmp1_;
 	g_return_if_fail (self != NULL);
-	templates_show_dialog_delete (_tmp0_ = templates_get_default (), self);
-	_g_object_unref0 (_tmp0_);
+	_tmp0_ = templates_get_default ();
+	_tmp1_ = _tmp0_;
+	templates_show_dialog_delete (_tmp1_, self);
+	_g_object_unref0 (_tmp1_);
 }
 
 
 void main_window_on_file_close (MainWindow* self) {
+	DocumentTab* _tmp0_ = NULL;
+	DocumentTab* _tmp1_ = NULL;
 	g_return_if_fail (self != NULL);
-	g_return_if_fail (main_window_get_active_tab (self) != NULL);
-	main_window_close_tab (self, main_window_get_active_tab (self), FALSE);
+	_tmp0_ = main_window_get_active_tab (self);
+	g_return_if_fail (_tmp0_ != NULL);
+	_tmp1_ = main_window_get_active_tab (self);
+	main_window_close_tab (self, _tmp1_, FALSE);
 }
 
 
-static void _vala_array_add2 (char*** array, int* length, int* size, char* value) {
+static void _vala_array_add1 (gchar*** array, int* length, int* size, gchar* value) {
 	if ((*length) == (*size)) {
 		*size = (*size) ? (2 * (*size)) : 4;
-		*array = g_renew (char*, *array, (*size) + 1);
+		*array = g_renew (gchar*, *array, (*size) + 1);
 	}
 	(*array)[(*length)++] = value;
 	(*array)[*length] = NULL;
@@ -3000,33 +3906,49 @@ static void _vala_array_add2 (char*** array, int* length, int* size, char* value
 
 
 void main_window_on_quit (MainWindow* self) {
+	gchar** _tmp0_ = NULL;
+	gchar** list_uris;
 	gint list_uris_length1;
 	gint _list_uris_size_;
-	char** _tmp1_;
-	char** _tmp0_ = NULL;
-	char** list_uris;
+	GList* _tmp1_ = NULL;
+	GSettings* _tmp6_ = NULL;
 	GSettings* settings;
+	gboolean _tmp7_;
 	g_return_if_fail (self != NULL);
-	list_uris = (_tmp1_ = (_tmp0_ = g_new0 (char*, 0 + 1), _tmp0_), list_uris_length1 = 0, _list_uris_size_ = list_uris_length1, _tmp1_);
+	_tmp0_ = g_new0 (gchar*, 0 + 1);
+	list_uris = _tmp0_;
+	list_uris_length1 = 0;
+	_list_uris_size_ = 0;
+	_tmp1_ = main_window_get_documents (self);
 	{
 		GList* doc_collection;
 		GList* doc_it;
-		doc_collection = main_window_get_documents (self);
+		doc_collection = _tmp1_;
 		for (doc_it = doc_collection; doc_it != NULL; doc_it = doc_it->next) {
+			Document* _tmp2_;
 			Document* doc;
-			doc = _g_object_ref0 ((Document*) doc_it->data);
+			_tmp2_ = _g_object_ref0 ((Document*) doc_it->data);
+			doc = _tmp2_;
 			{
-				if (document_get_location (doc) != NULL) {
-					_vala_array_add2 (&list_uris, &list_uris_length1, &_list_uris_size_, g_file_get_uri (document_get_location (doc)));
+				GFile* _tmp3_ = NULL;
+				_tmp3_ = document_get_location (doc);
+				if (_tmp3_ != NULL) {
+					GFile* _tmp4_ = NULL;
+					gchar* _tmp5_ = NULL;
+					_tmp4_ = document_get_location (doc);
+					_tmp5_ = g_file_get_uri (_tmp4_);
+					_vala_array_add1 (&list_uris, &list_uris_length1, &_list_uris_size_, _tmp5_);
 				}
 				_g_object_unref0 (doc);
 			}
 		}
-		__g_list_free_g_object_unref0 (doc_collection);
+		__g_list_free__g_object_unref0_0 (doc_collection);
 	}
-	settings = g_settings_new ("org.gnome.latexila.state.window");
+	_tmp6_ = g_settings_new ("org.gnome.latexila.state.window");
+	settings = _tmp6_;
 	g_settings_set_strv (settings, "documents", list_uris);
-	if (main_window_close_all_documents (self)) {
+	_tmp7_ = main_window_close_all_documents (self);
+	if (_tmp7_) {
 		main_window_save_state (self, FALSE);
 		gtk_object_destroy ((GtkObject*) self);
 	}
@@ -3036,75 +3958,125 @@ void main_window_on_quit (MainWindow* self) {
 
 
 void main_window_on_edit_undo (MainWindow* self) {
-	gboolean _tmp0_;
+	DocumentTab* _tmp0_ = NULL;
+	Document* _tmp1_ = NULL;
+	gboolean _tmp2_;
 	g_return_if_fail (self != NULL);
-	g_return_if_fail (main_window_get_active_tab (self) != NULL);
-	if ((g_object_get ((GtkSourceBuffer*) main_window_get_active_document (self), "can-undo", &_tmp0_, NULL), _tmp0_)) {
-		gtk_source_buffer_undo ((GtkSourceBuffer*) main_window_get_active_document (self));
-		document_view_scroll_to_cursor (main_window_get_active_view (self), 0.25);
-		gtk_widget_grab_focus ((GtkWidget*) main_window_get_active_view (self));
+	_tmp0_ = main_window_get_active_tab (self);
+	g_return_if_fail (_tmp0_ != NULL);
+	_tmp1_ = main_window_get_active_document (self);
+	g_object_get ((GtkSourceBuffer*) _tmp1_, "can-undo", &_tmp2_, NULL);
+	if (_tmp2_) {
+		Document* _tmp3_ = NULL;
+		DocumentView* _tmp4_ = NULL;
+		DocumentView* _tmp5_ = NULL;
+		_tmp3_ = main_window_get_active_document (self);
+		gtk_source_buffer_undo ((GtkSourceBuffer*) _tmp3_);
+		_tmp4_ = main_window_get_active_view (self);
+		document_view_scroll_to_cursor (_tmp4_, 0.25);
+		_tmp5_ = main_window_get_active_view (self);
+		gtk_widget_grab_focus ((GtkWidget*) _tmp5_);
 	}
 }
 
 
 void main_window_on_edit_redo (MainWindow* self) {
-	gboolean _tmp0_;
+	DocumentTab* _tmp0_ = NULL;
+	Document* _tmp1_ = NULL;
+	gboolean _tmp2_;
 	g_return_if_fail (self != NULL);
-	g_return_if_fail (main_window_get_active_tab (self) != NULL);
-	if ((g_object_get ((GtkSourceBuffer*) main_window_get_active_document (self), "can-redo", &_tmp0_, NULL), _tmp0_)) {
-		gtk_source_buffer_redo ((GtkSourceBuffer*) main_window_get_active_document (self));
-		document_view_scroll_to_cursor (main_window_get_active_view (self), 0.25);
-		gtk_widget_grab_focus ((GtkWidget*) main_window_get_active_view (self));
+	_tmp0_ = main_window_get_active_tab (self);
+	g_return_if_fail (_tmp0_ != NULL);
+	_tmp1_ = main_window_get_active_document (self);
+	g_object_get ((GtkSourceBuffer*) _tmp1_, "can-redo", &_tmp2_, NULL);
+	if (_tmp2_) {
+		Document* _tmp3_ = NULL;
+		DocumentView* _tmp4_ = NULL;
+		DocumentView* _tmp5_ = NULL;
+		_tmp3_ = main_window_get_active_document (self);
+		gtk_source_buffer_redo ((GtkSourceBuffer*) _tmp3_);
+		_tmp4_ = main_window_get_active_view (self);
+		document_view_scroll_to_cursor (_tmp4_, 0.25);
+		_tmp5_ = main_window_get_active_view (self);
+		gtk_widget_grab_focus ((GtkWidget*) _tmp5_);
 	}
 }
 
 
 void main_window_on_edit_cut (MainWindow* self) {
+	DocumentTab* _tmp0_ = NULL;
+	DocumentView* _tmp1_ = NULL;
 	g_return_if_fail (self != NULL);
-	g_return_if_fail (main_window_get_active_tab (self) != NULL);
-	document_view_cut_selection (main_window_get_active_view (self));
+	_tmp0_ = main_window_get_active_tab (self);
+	g_return_if_fail (_tmp0_ != NULL);
+	_tmp1_ = main_window_get_active_view (self);
+	document_view_cut_selection (_tmp1_);
 }
 
 
 void main_window_on_edit_copy (MainWindow* self) {
+	DocumentTab* _tmp0_ = NULL;
+	DocumentView* _tmp1_ = NULL;
 	g_return_if_fail (self != NULL);
-	g_return_if_fail (main_window_get_active_tab (self) != NULL);
-	document_view_copy_selection (main_window_get_active_view (self));
+	_tmp0_ = main_window_get_active_tab (self);
+	g_return_if_fail (_tmp0_ != NULL);
+	_tmp1_ = main_window_get_active_view (self);
+	document_view_copy_selection (_tmp1_);
 }
 
 
 void main_window_on_edit_paste (MainWindow* self) {
+	DocumentTab* _tmp0_ = NULL;
+	DocumentView* _tmp1_ = NULL;
 	g_return_if_fail (self != NULL);
-	g_return_if_fail (main_window_get_active_tab (self) != NULL);
-	document_view_my_paste_clipboard (main_window_get_active_view (self));
+	_tmp0_ = main_window_get_active_tab (self);
+	g_return_if_fail (_tmp0_ != NULL);
+	_tmp1_ = main_window_get_active_view (self);
+	document_view_my_paste_clipboard (_tmp1_);
 }
 
 
 void main_window_on_edit_delete (MainWindow* self) {
+	DocumentTab* _tmp0_ = NULL;
+	DocumentView* _tmp1_ = NULL;
 	g_return_if_fail (self != NULL);
-	g_return_if_fail (main_window_get_active_tab (self) != NULL);
-	document_view_delete_selection (main_window_get_active_view (self));
+	_tmp0_ = main_window_get_active_tab (self);
+	g_return_if_fail (_tmp0_ != NULL);
+	_tmp1_ = main_window_get_active_view (self);
+	document_view_delete_selection (_tmp1_);
 }
 
 
 void main_window_on_edit_select_all (MainWindow* self) {
+	DocumentTab* _tmp0_ = NULL;
+	DocumentView* _tmp1_ = NULL;
 	g_return_if_fail (self != NULL);
-	g_return_if_fail (main_window_get_active_tab (self) != NULL);
-	document_view_my_select_all (main_window_get_active_view (self));
+	_tmp0_ = main_window_get_active_tab (self);
+	g_return_if_fail (_tmp0_ != NULL);
+	_tmp1_ = main_window_get_active_view (self);
+	document_view_my_select_all (_tmp1_);
 }
 
 
 void main_window_on_edit_comment (MainWindow* self) {
+	DocumentTab* _tmp0_ = NULL;
+	Document* _tmp1_ = NULL;
 	g_return_if_fail (self != NULL);
-	g_return_if_fail (main_window_get_active_tab (self) != NULL);
-	document_comment_selected_lines (main_window_get_active_document (self));
+	_tmp0_ = main_window_get_active_tab (self);
+	g_return_if_fail (_tmp0_ != NULL);
+	_tmp1_ = main_window_get_active_document (self);
+	document_comment_selected_lines (_tmp1_);
 }
 
 
 void main_window_on_edit_uncomment (MainWindow* self) {
+	DocumentTab* _tmp0_ = NULL;
+	Document* _tmp1_ = NULL;
 	g_return_if_fail (self != NULL);
-	g_return_if_fail (main_window_get_active_tab (self) != NULL);
-	document_uncomment_selected_lines (main_window_get_active_document (self));
+	_tmp0_ = main_window_get_active_tab (self);
+	g_return_if_fail (_tmp0_ != NULL);
+	_tmp1_ = main_window_get_active_document (self);
+	document_uncomment_selected_lines (_tmp1_);
 }
 
 
@@ -3116,10 +4088,13 @@ void main_window_on_open_preferences (MainWindow* self) {
 
 void main_window_on_show_side_panel (MainWindow* self, GtkAction* action) {
 	GtkAction* _tmp0_;
+	gboolean _tmp1_;
 	gboolean show;
 	g_return_if_fail (self != NULL);
 	g_return_if_fail (action != NULL);
-	show = gtk_toggle_action_get_active ((_tmp0_ = action, GTK_IS_TOGGLE_ACTION (_tmp0_) ? ((GtkToggleAction*) _tmp0_) : NULL));
+	_tmp0_ = action;
+	_tmp1_ = gtk_toggle_action_get_active (GTK_IS_TOGGLE_ACTION (_tmp0_) ? ((GtkToggleAction*) _tmp0_) : NULL);
+	show = _tmp1_;
 	if (show) {
 		gtk_widget_show ((GtkWidget*) self->priv->side_panel);
 	} else {
@@ -3130,10 +4105,13 @@ void main_window_on_show_side_panel (MainWindow* self, GtkAction* action) {
 
 void main_window_on_show_bottom_panel (MainWindow* self, GtkAction* action) {
 	GtkAction* _tmp0_;
+	gboolean _tmp1_;
 	gboolean show;
 	g_return_if_fail (self != NULL);
 	g_return_if_fail (action != NULL);
-	show = gtk_toggle_action_get_active ((_tmp0_ = action, GTK_IS_TOGGLE_ACTION (_tmp0_) ? ((GtkToggleAction*) _tmp0_) : NULL));
+	_tmp0_ = action;
+	_tmp1_ = gtk_toggle_action_get_active (GTK_IS_TOGGLE_ACTION (_tmp0_) ? ((GtkToggleAction*) _tmp0_) : NULL);
+	show = _tmp1_;
 	if (show) {
 		gtk_widget_show_all ((GtkWidget*) self->priv->build_view);
 	} else {
@@ -3144,10 +4122,13 @@ void main_window_on_show_bottom_panel (MainWindow* self, GtkAction* action) {
 
 void main_window_on_show_edit_toolbar (MainWindow* self, GtkAction* action) {
 	GtkAction* _tmp0_;
+	gboolean _tmp1_;
 	gboolean show;
 	g_return_if_fail (self != NULL);
 	g_return_if_fail (action != NULL);
-	show = gtk_toggle_action_get_active ((_tmp0_ = action, GTK_IS_TOGGLE_ACTION (_tmp0_) ? ((GtkToggleAction*) _tmp0_) : NULL));
+	_tmp0_ = action;
+	_tmp1_ = gtk_toggle_action_get_active (GTK_IS_TOGGLE_ACTION (_tmp0_) ? ((GtkToggleAction*) _tmp0_) : NULL);
+	show = _tmp1_;
 	if (show) {
 		gtk_widget_show_all ((GtkWidget*) self->priv->edit_toolbar);
 	} else {
@@ -3157,43 +4138,61 @@ void main_window_on_show_edit_toolbar (MainWindow* self, GtkAction* action) {
 
 
 void main_window_on_view_zoom_in (MainWindow* self) {
+	DocumentTab* _tmp0_ = NULL;
+	DocumentView* _tmp1_ = NULL;
 	g_return_if_fail (self != NULL);
-	g_return_if_fail (main_window_get_active_tab (self) != NULL);
-	document_view_enlarge_font (main_window_get_active_view (self));
+	_tmp0_ = main_window_get_active_tab (self);
+	g_return_if_fail (_tmp0_ != NULL);
+	_tmp1_ = main_window_get_active_view (self);
+	document_view_enlarge_font (_tmp1_);
 }
 
 
 void main_window_on_view_zoom_out (MainWindow* self) {
+	DocumentTab* _tmp0_ = NULL;
+	DocumentView* _tmp1_ = NULL;
 	g_return_if_fail (self != NULL);
-	g_return_if_fail (main_window_get_active_tab (self) != NULL);
-	document_view_shrink_font (main_window_get_active_view (self));
+	_tmp0_ = main_window_get_active_tab (self);
+	g_return_if_fail (_tmp0_ != NULL);
+	_tmp1_ = main_window_get_active_view (self);
+	document_view_shrink_font (_tmp1_);
 }
 
 
 void main_window_on_view_zoom_reset (MainWindow* self) {
+	DocumentTab* _tmp0_ = NULL;
+	DocumentView* _tmp1_ = NULL;
 	g_return_if_fail (self != NULL);
-	g_return_if_fail (main_window_get_active_tab (self) != NULL);
-	document_view_set_font_from_settings (main_window_get_active_view (self));
+	_tmp0_ = main_window_get_active_tab (self);
+	g_return_if_fail (_tmp0_ != NULL);
+	_tmp1_ = main_window_get_active_view (self);
+	document_view_set_font_from_settings (_tmp1_);
 }
 
 
 void main_window_on_search_find (MainWindow* self) {
+	DocumentTab* _tmp0_ = NULL;
 	g_return_if_fail (self != NULL);
-	g_return_if_fail (main_window_get_active_tab (self) != NULL);
+	_tmp0_ = main_window_get_active_tab (self);
+	g_return_if_fail (_tmp0_ != NULL);
 	search_and_replace_show_search (self->priv->search_and_replace);
 }
 
 
 void main_window_on_search_replace (MainWindow* self) {
+	DocumentTab* _tmp0_ = NULL;
 	g_return_if_fail (self != NULL);
-	g_return_if_fail (main_window_get_active_tab (self) != NULL);
+	_tmp0_ = main_window_get_active_tab (self);
+	g_return_if_fail (_tmp0_ != NULL);
 	search_and_replace_show_search_and_replace (self->priv->search_and_replace);
 }
 
 
 void main_window_on_search_goto_line (MainWindow* self) {
+	DocumentTab* _tmp0_ = NULL;
 	g_return_if_fail (self != NULL);
-	g_return_if_fail (main_window_get_active_tab (self) != NULL);
+	_tmp0_ = main_window_get_active_tab (self);
+	g_return_if_fail (_tmp0_ != NULL);
 	goto_line_show (self->priv->goto_line);
 }
 
@@ -3207,39 +4206,82 @@ void main_window_on_build_stop_execution (MainWindow* self) {
 
 
 void main_window_on_build_clean (MainWindow* self) {
+	DocumentTab* _tmp0_ = NULL;
+	Document* _tmp1_ = NULL;
+	gboolean _tmp2_;
 	g_return_if_fail (self != NULL);
-	g_return_if_fail (main_window_get_active_tab (self) != NULL);
-	if (document_clean_build_files (main_window_get_active_document (self), self)) {
-		GFile* _tmp0_;
-		GFile* _tmp1_;
-		file_browser_refresh_if_in_dir (self->priv->file_browser, _tmp1_ = g_file_get_parent (_tmp0_ = document_get_main_file (main_window_get_active_document (self))));
-		_g_object_unref0 (_tmp1_);
-		_g_object_unref0 (_tmp0_);
+	_tmp0_ = main_window_get_active_tab (self);
+	g_return_if_fail (_tmp0_ != NULL);
+	_tmp1_ = main_window_get_active_document (self);
+	_tmp2_ = document_clean_build_files (_tmp1_, self);
+	if (_tmp2_) {
+		Document* _tmp3_ = NULL;
+		GFile* _tmp4_ = NULL;
+		GFile* _tmp5_;
+		GFile* _tmp6_ = NULL;
+		GFile* _tmp7_;
+		_tmp3_ = main_window_get_active_document (self);
+		_tmp4_ = document_get_main_file (_tmp3_);
+		_tmp5_ = _tmp4_;
+		_tmp6_ = g_file_get_parent (_tmp5_);
+		_tmp7_ = _tmp6_;
+		file_browser_refresh_if_in_dir (self->priv->file_browser, _tmp7_);
+		_g_object_unref0 (_tmp7_);
+		_g_object_unref0 (_tmp5_);
 	}
 }
 
 
 void main_window_on_build_view_log (MainWindow* self) {
+	DocumentTab* _tmp0_ = NULL;
+	Document* _tmp1_ = NULL;
+	gboolean _tmp2_;
+	Document* _tmp3_ = NULL;
+	GFile* _tmp4_ = NULL;
 	GFile* mainfile;
+	GFile* _tmp5_ = NULL;
 	GFile* directory;
-	char* _tmp0_;
-	char* _tmp1_;
-	char* _tmp2_;
-	char* basename;
+	gchar* _tmp6_ = NULL;
+	gchar* _tmp7_;
+	gchar* _tmp8_ = NULL;
+	gchar* _tmp9_;
+	gchar* _tmp10_;
+	gchar* _tmp11_;
+	gchar* basename;
+	GFile* _tmp12_ = NULL;
 	GFile* file;
+	DocumentTab* _tmp13_ = NULL;
 	DocumentTab* tab;
 	g_return_if_fail (self != NULL);
-	g_return_if_fail (main_window_get_active_tab (self) != NULL);
-	g_return_if_fail (document_is_tex_document (main_window_get_active_document (self)));
-	mainfile = document_get_main_file (main_window_get_active_document (self));
-	directory = g_file_get_parent (mainfile);
-	basename = (_tmp2_ = g_strconcat (_tmp1_ = utils_get_shortname (_tmp0_ = g_file_get_basename (mainfile)), ".log", NULL), _g_free0 (_tmp1_), _g_free0 (_tmp0_), _tmp2_);
-	file = g_file_get_child (directory, basename);
-	tab = main_window_open_document (self, file);
+	_tmp0_ = main_window_get_active_tab (self);
+	g_return_if_fail (_tmp0_ != NULL);
+	_tmp1_ = main_window_get_active_document (self);
+	_tmp2_ = document_is_main_file_a_tex_file (_tmp1_);
+	g_return_if_fail (_tmp2_);
+	_tmp3_ = main_window_get_active_document (self);
+	_tmp4_ = document_get_main_file (_tmp3_);
+	mainfile = _tmp4_;
+	_tmp5_ = g_file_get_parent (mainfile);
+	directory = _tmp5_;
+	_tmp6_ = g_file_get_basename (mainfile);
+	_tmp7_ = _tmp6_;
+	_tmp8_ = utils_get_shortname (_tmp7_);
+	_tmp9_ = _tmp8_;
+	_tmp10_ = g_strconcat (_tmp9_, ".log", NULL);
+	_tmp11_ = _tmp10_;
+	_g_free0 (_tmp9_);
+	_g_free0 (_tmp7_);
+	basename = _tmp11_;
+	_tmp12_ = g_file_get_child (directory, basename);
+	file = _tmp12_;
+	_tmp13_ = main_window_open_document (self, file);
+	tab = _tmp13_;
 	if (tab == NULL) {
 		fprintf (stderr, "Warning: impossible to view log\n");
 	} else {
-		document_set_readonly (document_tab_get_document (tab), TRUE);
+		Document* _tmp14_ = NULL;
+		_tmp14_ = document_tab_get_document (tab);
+		document_set_readonly (_tmp14_, TRUE);
 	}
 	_g_object_unref0 (tab);
 	_g_object_unref0 (file);
@@ -3250,50 +4292,66 @@ void main_window_on_build_view_log (MainWindow* self) {
 
 
 void main_window_on_documents_save_all (MainWindow* self) {
+	DocumentTab* _tmp0_ = NULL;
+	GList* _tmp1_ = NULL;
 	g_return_if_fail (self != NULL);
-	g_return_if_fail (main_window_get_active_tab (self) != NULL);
+	_tmp0_ = main_window_get_active_tab (self);
+	g_return_if_fail (_tmp0_ != NULL);
+	_tmp1_ = main_window_get_unsaved_documents (self);
 	{
 		GList* doc_collection;
 		GList* doc_it;
-		doc_collection = main_window_get_unsaved_documents (self);
+		doc_collection = _tmp1_;
 		for (doc_it = doc_collection; doc_it != NULL; doc_it = doc_it->next) {
+			Document* _tmp2_;
 			Document* doc;
-			doc = _g_object_ref0 ((Document*) doc_it->data);
+			_tmp2_ = _g_object_ref0 ((Document*) doc_it->data);
+			doc = _tmp2_;
 			{
 				document_save (doc, TRUE, FALSE);
 				_g_object_unref0 (doc);
 			}
 		}
-		__g_list_free_g_object_unref0 (doc_collection);
+		__g_list_free__g_object_unref0_0 (doc_collection);
 	}
 }
 
 
 void main_window_on_documents_close_all (MainWindow* self) {
+	DocumentTab* _tmp0_ = NULL;
 	g_return_if_fail (self != NULL);
-	g_return_if_fail (main_window_get_active_tab (self) != NULL);
+	_tmp0_ = main_window_get_active_tab (self);
+	g_return_if_fail (_tmp0_ != NULL);
 	main_window_close_all_documents (self);
 }
 
 
 void main_window_on_documents_previous (MainWindow* self) {
+	DocumentTab* _tmp0_ = NULL;
 	g_return_if_fail (self != NULL);
-	g_return_if_fail (main_window_get_active_tab (self) != NULL);
+	_tmp0_ = main_window_get_active_tab (self);
+	g_return_if_fail (_tmp0_ != NULL);
 	gtk_notebook_prev_page ((GtkNotebook*) self->priv->documents_panel);
 }
 
 
 void main_window_on_documents_next (MainWindow* self) {
+	DocumentTab* _tmp0_ = NULL;
 	g_return_if_fail (self != NULL);
-	g_return_if_fail (main_window_get_active_tab (self) != NULL);
+	_tmp0_ = main_window_get_active_tab (self);
+	g_return_if_fail (_tmp0_ != NULL);
 	gtk_notebook_next_page ((GtkNotebook*) self->priv->documents_panel);
 }
 
 
 void main_window_on_documents_move_to_new_window (MainWindow* self) {
+	DocumentTab* _tmp0_ = NULL;
+	DocumentTab* _tmp1_ = NULL;
 	g_return_if_fail (self != NULL);
-	g_return_if_fail (main_window_get_active_tab (self) != NULL);
-	main_window_move_tab_to_new_window (self, main_window_get_active_tab (self));
+	_tmp0_ = main_window_get_active_tab (self);
+	g_return_if_fail (_tmp0_ != NULL);
+	_tmp1_ = main_window_get_active_tab (self);
+	main_window_move_tab_to_new_window (self, _tmp1_);
 }
 
 
@@ -3304,10 +4362,20 @@ void main_window_on_projects_new (MainWindow* self) {
 
 
 void main_window_on_projects_config_current (MainWindow* self) {
+	DocumentTab* _tmp0_ = NULL;
+	Document* _tmp1_ = NULL;
+	gint _tmp2_;
+	Document* _tmp3_ = NULL;
+	gint _tmp4_;
 	g_return_if_fail (self != NULL);
-	g_return_if_fail (main_window_get_active_tab (self) != NULL);
-	g_return_if_fail (document_get_project_id (main_window_get_active_document (self)) != (-1));
-	project_dialogs_configure_project ((GtkWindow*) self, document_get_project_id (main_window_get_active_document (self)));
+	_tmp0_ = main_window_get_active_tab (self);
+	g_return_if_fail (_tmp0_ != NULL);
+	_tmp1_ = main_window_get_active_document (self);
+	_tmp2_ = document_get_project_id (_tmp1_);
+	g_return_if_fail (_tmp2_ != (-1));
+	_tmp3_ = main_window_get_active_document (self);
+	_tmp4_ = document_get_project_id (_tmp3_);
+	project_dialogs_configure_project ((GtkWindow*) self, _tmp4_);
 }
 
 
@@ -3318,39 +4386,66 @@ void main_window_on_projects_manage (MainWindow* self) {
 
 
 void main_window_on_help_latex_reference (MainWindow* self) {
-	char* _tmp0_;
-	GFile* _tmp1_;
+	gchar* _tmp0_ = NULL;
+	gchar* _tmp1_;
+	GFile* _tmp2_ = NULL;
+	GFile* _tmp3_;
 	GFile* file;
-	BuildToolRunner* _tmp2_;
+	const gchar* _tmp4_ = NULL;
+	BuildToolRunner* _tmp5_ = NULL;
+	BuildToolRunner* _tmp6_;
 	g_return_if_fail (self != NULL);
-	file = (_tmp1_ = g_file_new_for_path (_tmp0_ = g_build_filename (DATA_DIR, "latexhelp.html", NULL, NULL)), _g_free0 (_tmp0_), _tmp1_);
-	_tmp2_ = build_tool_runner_new_web_browser (file, _ ("View LaTeX Reference"), self->priv->build_view, self->priv->action_stop_exec);
-	_g_object_unref0 (_tmp2_);
+	_tmp0_ = g_build_filename (DATA_DIR, "latexhelp.html", NULL, NULL);
+	_tmp1_ = _tmp0_;
+	_tmp2_ = g_file_new_for_path (_tmp1_);
+	_tmp3_ = _tmp2_;
+	_g_free0 (_tmp1_);
+	file = _tmp3_;
+	_tmp4_ = _ ("View LaTeX Reference");
+	_tmp5_ = build_tool_runner_new_web_browser (file, _tmp4_, self->priv->build_view, self->priv->action_stop_exec);
+	_tmp6_ = _tmp5_;
+	_g_object_unref0 (_tmp6_);
 	_g_object_unref0 (file);
 }
 
 
 void main_window_on_about_dialog (MainWindow* self) {
-	char* comments;
-	char* copyright;
-	char* licence;
-	char* website;
+	const gchar* _tmp0_ = NULL;
+	gchar* _tmp1_;
+	gchar* comments;
+	gchar* _tmp2_;
+	gchar* copyright;
+	gchar* _tmp3_;
+	gchar* licence;
+	gchar* _tmp4_;
+	gchar* website;
+	gchar* _tmp5_;
+	gchar** _tmp6_ = NULL;
+	gchar** authors;
 	gint authors_length1;
 	gint _authors_size_;
-	char** _tmp1_;
-	char** _tmp0_ = NULL;
-	char** authors;
+	gchar* _tmp7_;
+	gchar* _tmp8_;
+	gchar* _tmp9_;
+	gchar* _tmp10_;
+	gchar* _tmp11_;
+	gchar** _tmp12_ = NULL;
+	gchar** artists;
 	gint artists_length1;
 	gint _artists_size_;
-	char** _tmp3_;
-	char** _tmp2_ = NULL;
-	char** artists;
 	GdkPixbuf* logo;
+	GdkPixbuf* _tmp13_ = NULL;
+	GdkPixbuf* _tmp14_;
+	const gchar* _tmp15_ = NULL;
+	const gchar* _tmp16_ = NULL;
 	GError * _inner_error_ = NULL;
 	g_return_if_fail (self != NULL);
-	comments = g_strdup (_ ("LaTeXila is an Integrated LaTeX Environment for the GNOME Desktop"));
-	copyright = g_strdup ("Copyright (C) 2009-2011 Sébastien Wilmet");
-	licence = g_strdup ("LaTeXila is free software: you can redistribute it and/or modify\n" \
+	_tmp0_ = _ ("LaTeXila is an Integrated LaTeX Environment for the GNOME Desktop");
+	_tmp1_ = g_strdup (_tmp0_);
+	comments = _tmp1_;
+	_tmp2_ = g_strdup ("Copyright (C) 2009-2011 Sébastien Wilmet");
+	copyright = _tmp2_;
+	_tmp3_ = g_strdup ("LaTeXila is free software: you can redistribute it and/or modify\n" \
 "it under the terms of the GNU General Public License as published by\n" \
 "the Free Software Foundation, either version 3 of the License, or\n" \
 "(at your option) any later version.\n" \
@@ -3362,29 +4457,47 @@ void main_window_on_about_dialog (MainWindow* self) {
 "\n" \
 "You should have received a copy of the GNU General Public License\n" \
 "along with LaTeXila.  If not, see <http://www.gnu.org/licenses/>.");
-	website = g_strdup ("http://latexila.sourceforge.net/";);
-	authors = (_tmp1_ = (_tmp0_ = g_new0 (char*, 2 + 1), _tmp0_[0] = g_strdup ("Sébastien Wilmet <sebastien wilmet gmail com>"), _tmp0_[1] = NULL, _tmp0_), authors_length1 = 2, _authors_size_ = authors_length1, _tmp1_);
-	artists = (_tmp3_ = (_tmp2_ = g_new0 (char*, 6 + 1), _tmp2_[0] = g_strdup ("Ann Melnichuk <melnichu qtp ufl edu>"), _tmp2_[1] = g_strdup ("Eric Forgeot <e forgeot laposte net>"), _tmp2_[2] = g_strdup ("Sébastien Wilmet <sebastien wilmet gmail com>"), _tmp2_[3] = g_strdup ("The Kile Team: http://kile.sourceforge.net/";), _tmp2_[4] = g_strdup ("Gedit LaTeX Plugin: http://www.michaels-website.de/gedit-latex-plugin/";), _tmp2_[5] = NULL, _tmp2_), artists_length1 = 6, _artists_size_ = artists_length1, _tmp3_);
+	licence = _tmp3_;
+	_tmp4_ = g_strdup ("http://projects.gnome.org/latexila/";);
+	website = _tmp4_;
+	_tmp5_ = g_strdup ("Sébastien Wilmet <sebastien wilmet gmail com>");
+	_tmp6_ = g_new0 (gchar*, 2 + 1);
+	_tmp6_[0] = _tmp5_;
+	_tmp6_[1] = NULL;
+	authors = _tmp6_;
+	authors_length1 = 2;
+	_authors_size_ = 2;
+	_tmp7_ = g_strdup ("Ann Melnichuk <melnichu qtp ufl edu>");
+	_tmp8_ = g_strdup ("Eric Forgeot <e forgeot laposte net>");
+	_tmp9_ = g_strdup ("Sébastien Wilmet <sebastien wilmet gmail com>");
+	_tmp10_ = g_strdup ("The Kile Team: http://kile.sourceforge.net/";);
+	_tmp11_ = g_strdup ("Gedit LaTeX Plugin: http://www.michaels-website.de/gedit-latex-plugin/";);
+	_tmp12_ = g_new0 (gchar*, 6 + 1);
+	_tmp12_[0] = _tmp7_;
+	_tmp12_[1] = _tmp8_;
+	_tmp12_[2] = _tmp9_;
+	_tmp12_[3] = _tmp10_;
+	_tmp12_[4] = _tmp11_;
+	_tmp12_[5] = NULL;
+	artists = _tmp12_;
+	artists_length1 = 6;
+	_artists_size_ = 6;
 	logo = NULL;
-	{
-		GdkPixbuf* _tmp4_;
-		GdkPixbuf* _tmp5_;
-		_tmp4_ = gdk_pixbuf_new_from_file (DATA_DIR "/images/app/logo.png", &_inner_error_);
-		if (_inner_error_ != NULL) {
-			goto __catch6_g_error;
-		}
-		logo = (_tmp5_ = _tmp4_, _g_object_unref0 (logo), _tmp5_);
+	_tmp13_ = gdk_pixbuf_new_from_file (DATA_DIR "/images/app/logo.png", &_inner_error_);
+	_tmp14_ = _tmp13_;
+	if (_inner_error_ != NULL) {
+		goto __catch6_g_error;
 	}
+	_g_object_unref0 (logo);
+	logo = _tmp14_;
 	goto __finally6;
 	__catch6_g_error:
 	{
 		GError * e;
 		e = _inner_error_;
 		_inner_error_ = NULL;
-		{
-			fprintf (stderr, "Error with the logo: %s\n", e->message);
-			_g_error_free0 (e);
-		}
+		fprintf (stderr, "Error with the logo: %s\n", e->message);
+		_g_error_free0 (e);
 	}
 	__finally6:
 	if (_inner_error_ != NULL) {
@@ -3399,7 +4512,9 @@ void main_window_on_about_dialog (MainWindow* self) {
 		g_clear_error (&_inner_error_);
 		return;
 	}
-	gtk_show_about_dialog ((GtkWindow*) self, "program-name", "LaTeXila", "version", APP_VERSION, "authors", authors, "artists", artists, "comments", comments, "copyright", copyright, "license", licence, "title", _ ("About LaTeXila"), "translator-credits", _ ("translator-credits"), "website", website, "logo", logo, NULL, NULL);
+	_tmp15_ = _ ("About LaTeXila");
+	_tmp16_ = _ ("translator-credits");
+	gtk_show_about_dialog ((GtkWindow*) self, "program-name", "LaTeXila", "version", APP_VERSION, "authors", authors, "artists", artists, "comments", comments, "copyright", copyright, "license", licence, "title", _tmp15_, "translator-credits", _tmp16_, "website", website, "logo", logo, NULL, NULL);
 	_g_object_unref0 (logo);
 	artists = (_vala_array_free (artists, artists_length1, (GDestroyNotify) g_free), NULL);
 	authors = (_vala_array_free (authors, authors_length1, (GDestroyNotify) g_free), NULL);
@@ -3412,20 +4527,26 @@ void main_window_on_about_dialog (MainWindow* self) {
 
 DocumentTab* main_window_get_active_tab (MainWindow* self) {
 	DocumentTab* result;
+	gint _tmp0_;
+	DocumentTab* _tmp1_ = NULL;
 	g_return_val_if_fail (self != NULL, NULL);
-	if (gtk_notebook_get_n_pages ((GtkNotebook*) self->priv->documents_panel) == 0) {
+	_tmp0_ = gtk_notebook_get_n_pages ((GtkNotebook*) self->priv->documents_panel);
+	if (_tmp0_ == 0) {
 		result = NULL;
 		return result;
 	}
-	result = documents_panel_get_active_tab (self->priv->documents_panel);
+	_tmp1_ = documents_panel_get_active_tab (self->priv->documents_panel);
+	result = _tmp1_;
 	return result;
 }
 
 
 void main_window_set_active_tab (MainWindow* self, DocumentTab* value) {
+	gint _tmp0_;
 	gint n;
 	g_return_if_fail (self != NULL);
-	n = gtk_notebook_page_num ((GtkNotebook*) self->priv->documents_panel, (GtkWidget*) value);
+	_tmp0_ = gtk_notebook_page_num ((GtkNotebook*) self->priv->documents_panel, (GtkWidget*) value);
+	n = _tmp0_;
 	if (n != (-1)) {
 		gtk_notebook_set_current_page ((GtkNotebook*) self->priv->documents_panel, n);
 	}
@@ -3435,24 +4556,36 @@ void main_window_set_active_tab (MainWindow* self, DocumentTab* value) {
 
 DocumentView* main_window_get_active_view (MainWindow* self) {
 	DocumentView* result;
+	DocumentTab* _tmp0_ = NULL;
+	DocumentTab* _tmp1_ = NULL;
+	DocumentView* _tmp2_ = NULL;
 	g_return_val_if_fail (self != NULL, NULL);
-	if (main_window_get_active_tab (self) == NULL) {
+	_tmp0_ = main_window_get_active_tab (self);
+	if (_tmp0_ == NULL) {
 		result = NULL;
 		return result;
 	}
-	result = document_tab_get_view (main_window_get_active_tab (self));
+	_tmp1_ = main_window_get_active_tab (self);
+	_tmp2_ = document_tab_get_view (_tmp1_);
+	result = _tmp2_;
 	return result;
 }
 
 
 Document* main_window_get_active_document (MainWindow* self) {
 	Document* result;
+	DocumentTab* _tmp0_ = NULL;
+	DocumentTab* _tmp1_ = NULL;
+	Document* _tmp2_ = NULL;
 	g_return_val_if_fail (self != NULL, NULL);
-	if (main_window_get_active_tab (self) == NULL) {
+	_tmp0_ = main_window_get_active_tab (self);
+	if (_tmp0_ == NULL) {
 		result = NULL;
 		return result;
 	}
-	result = document_tab_get_document (main_window_get_active_tab (self));
+	_tmp1_ = main_window_get_active_tab (self);
+	_tmp2_ = document_tab_get_document (_tmp1_);
+	result = _tmp2_;
 	return result;
 }
 
@@ -3460,8 +4593,8 @@ Document* main_window_get_active_document (MainWindow* self) {
 static void main_window_class_init (MainWindowClass * klass) {
 	main_window_parent_class = g_type_class_peek_parent (klass);
 	g_type_class_add_private (klass, sizeof (MainWindowPrivate));
-	G_OBJECT_CLASS (klass)->get_property = main_window_get_property;
-	G_OBJECT_CLASS (klass)->set_property = main_window_set_property;
+	G_OBJECT_CLASS (klass)->get_property = _vala_main_window_get_property;
+	G_OBJECT_CLASS (klass)->set_property = _vala_main_window_set_property;
 	G_OBJECT_CLASS (klass)->finalize = main_window_finalize;
 	g_object_class_install_property (G_OBJECT_CLASS (klass), MAIN_WINDOW_ACTIVE_TAB, g_param_spec_object ("active-tab", "active-tab", "active-tab", TYPE_DOCUMENT_TAB, G_PARAM_STATIC_NAME | G_PARAM_STATIC_NICK | G_PARAM_STATIC_BLURB | G_PARAM_READABLE | G_PARAM_WRITABLE));
 	g_object_class_install_property (G_OBJECT_CLASS (klass), MAIN_WINDOW_ACTIVE_VIEW, g_param_spec_object ("active-view", "active-view", "active-view", TYPE_DOCUMENT_VIEW, G_PARAM_STATIC_NAME | G_PARAM_STATIC_NICK | G_PARAM_STATIC_BLURB | G_PARAM_READABLE));
@@ -3470,8 +4603,12 @@ static void main_window_class_init (MainWindowClass * klass) {
 
 
 static void main_window_instance_init (MainWindow * self) {
+	const gchar* _tmp0_ = NULL;
+	gchar* _tmp1_;
 	self->priv = MAIN_WINDOW_GET_PRIVATE (self);
-	self->priv->file_chooser_current_folder = g_strdup (g_get_home_dir ());
+	_tmp0_ = g_get_home_dir ();
+	_tmp1_ = g_strdup (_tmp0_);
+	self->priv->file_chooser_current_folder = _tmp1_;
 }
 
 
@@ -3513,7 +4650,7 @@ GType main_window_get_type (void) {
 }
 
 
-static void main_window_get_property (GObject * object, guint property_id, GValue * value, GParamSpec * pspec) {
+static void _vala_main_window_get_property (GObject * object, guint property_id, GValue * value, GParamSpec * pspec) {
 	MainWindow * self;
 	self = MAIN_WINDOW (object);
 	switch (property_id) {
@@ -3533,7 +4670,7 @@ static void main_window_get_property (GObject * object, guint property_id, GValu
 }
 
 
-static void main_window_set_property (GObject * object, guint property_id, const GValue * value, GParamSpec * pspec) {
+static void _vala_main_window_set_property (GObject * object, guint property_id, const GValue * value, GParamSpec * pspec) {
 	MainWindow * self;
 	self = MAIN_WINDOW (object);
 	switch (property_id) {
@@ -3577,16 +4714,4 @@ static gint _vala_array_length (gpointer array) {
 }
 
 
-static int _vala_strcmp0 (const char * str1, const char * str2) {
-	if (str1 == NULL) {
-		return -(str1 != str2);
-	}
-	if (str2 == NULL) {
-		return str1 != str2;
-	}
-	return strcmp (str1, str2);
-}
-
-
-
 
diff --git a/src/C/menu_in_toolbar.c b/src/C/menu_in_toolbar.c
index 1c6c2e6..0cc9248 100644
--- a/src/C/menu_in_toolbar.c
+++ b/src/C/menu_in_toolbar.c
@@ -1,4 +1,4 @@
-/* menu_in_toolbar.c generated by valac 0.10.3, the Vala compiler
+/* menu_in_toolbar.c generated by valac 0.12.1, the Vala compiler
  * generated from menu_in_toolbar.vala, do not modify */
 
 /*
@@ -54,23 +54,24 @@ GType menu_tool_action_get_type (void) G_GNUC_CONST;
 enum  {
 	MENU_TOOL_ACTION_DUMMY_PROPERTY
 };
-MenuToolAction* menu_tool_action_new (const char* name, const char* label, const char* tooltip, const char* stock_id);
-MenuToolAction* menu_tool_action_construct (GType object_type, const char* name, const char* label, const char* tooltip, const char* stock_id);
+MenuToolAction* menu_tool_action_new (const gchar* name, const gchar* label, const gchar* tooltip, const gchar* stock_id);
+MenuToolAction* menu_tool_action_construct (GType object_type, const gchar* name, const gchar* label, const gchar* tooltip, const gchar* stock_id);
 
 
-
-MenuToolAction* menu_tool_action_construct (GType object_type, const char* name, const char* label, const char* tooltip, const char* stock_id) {
+MenuToolAction* menu_tool_action_construct (GType object_type, const gchar* name, const gchar* label, const gchar* tooltip, const gchar* stock_id) {
 	MenuToolAction * self = NULL;
+	GObjectClass* _tmp0_ = NULL;
 	GtkActionClass* ac;
 	g_return_val_if_fail (name != NULL, NULL);
 	self = (MenuToolAction*) g_object_new (object_type, "name", name, "label", label, "tooltip", tooltip, "stock-id", stock_id, NULL);
-	ac = (GtkActionClass*) G_OBJECT_GET_CLASS ((GObject*) self);
+	_tmp0_ = G_OBJECT_GET_CLASS ((GObject*) self);
+	ac = (GtkActionClass*) _tmp0_;
 	ac->toolbar_item_type = GTK_TYPE_MENU_TOOL_BUTTON;
 	return self;
 }
 
 
-MenuToolAction* menu_tool_action_new (const char* name, const char* label, const char* tooltip, const char* stock_id) {
+MenuToolAction* menu_tool_action_new (const gchar* name, const gchar* label, const gchar* tooltip, const gchar* stock_id) {
 	return menu_tool_action_construct (TYPE_MENU_TOOL_ACTION, name, label, tooltip, stock_id);
 }
 
@@ -97,4 +98,3 @@ GType menu_tool_action_get_type (void) {
 
 
 
-
diff --git a/src/C/post_processors.c b/src/C/post_processors.c
index 0985bb7..e34321f 100644
--- a/src/C/post_processors.c
+++ b/src/C/post_processors.c
@@ -1,4 +1,4 @@
-/* post_processors.c generated by valac 0.10.3, the Vala compiler
+/* post_processors.c generated by valac 0.12.1, the Vala compiler
  * generated from post_processors.vala, do not modify */
 
 /*
@@ -76,8 +76,8 @@ typedef struct _RubberPostProcessorClass RubberPostProcessorClass;
 typedef struct _RubberPostProcessorPrivate RubberPostProcessorPrivate;
 #define _g_regex_unref0(var) ((var == NULL) ? NULL : (var = (g_regex_unref (var), NULL)))
 #define _g_error_free0(var) ((var == NULL) ? NULL : (var = (g_error_free (var), NULL)))
-#define _g_match_info_free0(var) ((var == NULL) ? NULL : (var = (g_match_info_free (var), NULL)))
 #define _g_object_unref0(var) ((var == NULL) ? NULL : (var = (g_object_unref (var), NULL)))
+#define _g_match_info_free0(var) ((var == NULL) ? NULL : (var = (g_match_info_free (var), NULL)))
 
 typedef enum  {
 	BUILD_MESSAGE_TYPE_ERROR,
@@ -87,16 +87,16 @@ typedef enum  {
 } BuildMessageType;
 
 struct _BuildIssue {
-	char* message;
+	gchar* message;
 	BuildMessageType message_type;
-	char* filename;
+	gchar* filename;
 	gint start_line;
 	gint end_line;
 };
 
 struct _PostProcessorIface {
 	GTypeInterface parent_iface;
-	void (*process) (PostProcessor* self, GFile* file, const char* output, gint status);
+	void (*process) (PostProcessor* self, GFile* file, const gchar* output, gint status);
 	BuildIssue* (*get_issues) (PostProcessor* self, int* result_length1);
 	gboolean (*get_successful) (PostProcessor* self);
 	void (*set_successful) (PostProcessor* self, gboolean value);
@@ -152,9 +152,9 @@ static gpointer no_output_post_processor_parent_class = NULL;
 static PostProcessorIface* no_output_post_processor_post_processor_parent_iface = NULL;
 static gpointer all_output_post_processor_parent_class = NULL;
 static PostProcessorIface* all_output_post_processor_post_processor_parent_iface = NULL;
+static gpointer rubber_post_processor_parent_class = NULL;
 static GRegex* rubber_post_processor_pattern;
 static GRegex* rubber_post_processor_pattern = NULL;
-static gpointer rubber_post_processor_parent_class = NULL;
 static PostProcessorIface* rubber_post_processor_post_processor_parent_iface = NULL;
 
 GType build_issue_get_type (void) G_GNUC_CONST;
@@ -164,7 +164,7 @@ void build_issue_free (BuildIssue* self);
 void build_issue_copy (const BuildIssue* self, BuildIssue* dest);
 void build_issue_destroy (BuildIssue* self);
 GType post_processor_get_type (void) G_GNUC_CONST;
-void post_processor_process (PostProcessor* self, GFile* file, const char* output, gint status);
+void post_processor_process (PostProcessor* self, GFile* file, const gchar* output, gint status);
 BuildIssue* post_processor_get_issues (PostProcessor* self, int* result_length1);
 gboolean post_processor_get_successful (PostProcessor* self);
 void post_processor_set_successful (PostProcessor* self, gboolean value);
@@ -174,28 +174,28 @@ enum  {
 	NO_OUTPUT_POST_PROCESSOR_DUMMY_PROPERTY,
 	NO_OUTPUT_POST_PROCESSOR_SUCCESSFUL
 };
-static void no_output_post_processor_real_process (PostProcessor* base, GFile* file, const char* output, gint status);
+static void no_output_post_processor_real_process (PostProcessor* base, GFile* file, const gchar* output, gint status);
 static BuildIssue* no_output_post_processor_real_get_issues (PostProcessor* base, int* result_length1);
 static void _vala_BuildIssue_array_free (BuildIssue* array, gint array_length);
 NoOutputPostProcessor* no_output_post_processor_new (void);
 NoOutputPostProcessor* no_output_post_processor_construct (GType object_type);
 static void no_output_post_processor_finalize (GObject* obj);
-static void no_output_post_processor_get_property (GObject * object, guint property_id, GValue * value, GParamSpec * pspec);
-static void no_output_post_processor_set_property (GObject * object, guint property_id, const GValue * value, GParamSpec * pspec);
+static void _vala_no_output_post_processor_get_property (GObject * object, guint property_id, GValue * value, GParamSpec * pspec);
+static void _vala_no_output_post_processor_set_property (GObject * object, guint property_id, const GValue * value, GParamSpec * pspec);
 GType all_output_post_processor_get_type (void) G_GNUC_CONST;
 #define ALL_OUTPUT_POST_PROCESSOR_GET_PRIVATE(o) (G_TYPE_INSTANCE_GET_PRIVATE ((o), TYPE_ALL_OUTPUT_POST_PROCESSOR, AllOutputPostProcessorPrivate))
 enum  {
 	ALL_OUTPUT_POST_PROCESSOR_DUMMY_PROPERTY,
 	ALL_OUTPUT_POST_PROCESSOR_SUCCESSFUL
 };
-static void all_output_post_processor_real_process (PostProcessor* base, GFile* file, const char* output, gint status);
+static void all_output_post_processor_real_process (PostProcessor* base, GFile* file, const gchar* output, gint status);
 static BuildIssue* all_output_post_processor_real_get_issues (PostProcessor* base, int* result_length1);
 static BuildIssue* _vala_array_dup4 (BuildIssue* self, int length);
 AllOutputPostProcessor* all_output_post_processor_new (void);
 AllOutputPostProcessor* all_output_post_processor_construct (GType object_type);
 static void all_output_post_processor_finalize (GObject* obj);
-static void all_output_post_processor_get_property (GObject * object, guint property_id, GValue * value, GParamSpec * pspec);
-static void all_output_post_processor_set_property (GObject * object, guint property_id, const GValue * value, GParamSpec * pspec);
+static void _vala_all_output_post_processor_get_property (GObject * object, guint property_id, GValue * value, GParamSpec * pspec);
+static void _vala_all_output_post_processor_set_property (GObject * object, guint property_id, const GValue * value, GParamSpec * pspec);
 GType rubber_post_processor_get_type (void) G_GNUC_CONST;
 #define RUBBER_POST_PROCESSOR_GET_PRIVATE(o) (G_TYPE_INSTANCE_GET_PRIVATE ((o), TYPE_RUBBER_POST_PROCESSOR, RubberPostProcessorPrivate))
 enum  {
@@ -204,20 +204,19 @@ enum  {
 };
 RubberPostProcessor* rubber_post_processor_new (void);
 RubberPostProcessor* rubber_post_processor_construct (GType object_type);
-static void rubber_post_processor_real_process (PostProcessor* base, GFile* file, const char* output, gint status);
-static void _vala_array_add12 (BuildIssue** array, int* length, int* size, const BuildIssue* value);
+static void rubber_post_processor_real_process (PostProcessor* base, GFile* file, const gchar* output, gint status);
+static void _vala_array_add11 (BuildIssue** array, int* length, int* size, const BuildIssue* value);
 static BuildIssue* rubber_post_processor_real_get_issues (PostProcessor* base, int* result_length1);
 static BuildIssue* _vala_array_dup5 (BuildIssue* self, int length);
 static void rubber_post_processor_finalize (GObject* obj);
-static void rubber_post_processor_get_property (GObject * object, guint property_id, GValue * value, GParamSpec * pspec);
-static void rubber_post_processor_set_property (GObject * object, guint property_id, const GValue * value, GParamSpec * pspec);
+static void _vala_rubber_post_processor_get_property (GObject * object, guint property_id, GValue * value, GParamSpec * pspec);
+static void _vala_rubber_post_processor_set_property (GObject * object, guint property_id, const GValue * value, GParamSpec * pspec);
 static void _vala_array_destroy (gpointer array, gint array_length, GDestroyNotify destroy_func);
 static void _vala_array_free (gpointer array, gint array_length, GDestroyNotify destroy_func);
 static gint _vala_array_length (gpointer array);
 
 
-
-void post_processor_process (PostProcessor* self, GFile* file, const char* output, gint status) {
+void post_processor_process (PostProcessor* self, GFile* file, const gchar* output, gint status) {
 	POST_PROCESSOR_GET_INTERFACE (self)->process (self, file, output, status);
 }
 
@@ -259,7 +258,7 @@ GType post_processor_get_type (void) {
 }
 
 
-static void no_output_post_processor_real_process (PostProcessor* base, GFile* file, const char* output, gint status) {
+static void no_output_post_processor_real_process (PostProcessor* base, GFile* file, const gchar* output, gint status) {
 	NoOutputPostProcessor * self;
 	self = (NoOutputPostProcessor*) base;
 	g_return_if_fail (file != NULL);
@@ -282,17 +281,22 @@ static void _vala_BuildIssue_array_free (BuildIssue* array, gint array_length) {
 static BuildIssue* no_output_post_processor_real_get_issues (PostProcessor* base, int* result_length1) {
 	NoOutputPostProcessor * self;
 	BuildIssue* result = NULL;
+	BuildIssue* _tmp0_ = NULL;
+	BuildIssue* issues;
 	gint issues_length1;
 	gint _issues_size_;
 	BuildIssue* _tmp1_;
-	BuildIssue* _tmp0_ = NULL;
-	BuildIssue* issues;
-	BuildIssue* _tmp2_;
 	self = (NoOutputPostProcessor*) base;
-	issues = (_tmp1_ = (_tmp0_ = g_new0 (BuildIssue, 0), _tmp0_), issues_length1 = 0, _issues_size_ = issues_length1, _tmp1_);
-	result = (_tmp2_ = issues, *result_length1 = issues_length1, _tmp2_);
+	_tmp0_ = g_new0 (BuildIssue, 0);
+	issues = _tmp0_;
+	issues_length1 = 0;
+	_issues_size_ = 0;
+	_tmp1_ = issues;
+	if (result_length1) {
+		*result_length1 = issues_length1;
+	}
+	result = _tmp1_;
 	return result;
-	issues = (_vala_BuildIssue_array_free (issues, issues_length1), NULL);
 }
 
 
@@ -328,8 +332,8 @@ static void no_output_post_processor_real_set_successful (PostProcessor* base, g
 static void no_output_post_processor_class_init (NoOutputPostProcessorClass * klass) {
 	no_output_post_processor_parent_class = g_type_class_peek_parent (klass);
 	g_type_class_add_private (klass, sizeof (NoOutputPostProcessorPrivate));
-	G_OBJECT_CLASS (klass)->get_property = no_output_post_processor_get_property;
-	G_OBJECT_CLASS (klass)->set_property = no_output_post_processor_set_property;
+	G_OBJECT_CLASS (klass)->get_property = _vala_no_output_post_processor_get_property;
+	G_OBJECT_CLASS (klass)->set_property = _vala_no_output_post_processor_set_property;
 	G_OBJECT_CLASS (klass)->finalize = no_output_post_processor_finalize;
 	g_object_class_override_property (G_OBJECT_CLASS (klass), NO_OUTPUT_POST_PROCESSOR_SUCCESSFUL, "successful");
 }
@@ -337,8 +341,8 @@ static void no_output_post_processor_class_init (NoOutputPostProcessorClass * kl
 
 static void no_output_post_processor_post_processor_interface_init (PostProcessorIface * iface) {
 	no_output_post_processor_post_processor_parent_iface = g_type_interface_peek_parent (iface);
-	iface->process = no_output_post_processor_real_process;
-	iface->get_issues = no_output_post_processor_real_get_issues;
+	iface->process = (void (*)(PostProcessor* ,GFile* ,const gchar* ,gint)) no_output_post_processor_real_process;
+	iface->get_issues = (BuildIssue* (*)(PostProcessor* ,int*)) no_output_post_processor_real_get_issues;
 	iface->get_successful = no_output_post_processor_real_get_successful;
 	iface->set_successful = no_output_post_processor_real_set_successful;
 }
@@ -370,7 +374,7 @@ GType no_output_post_processor_get_type (void) {
 }
 
 
-static void no_output_post_processor_get_property (GObject * object, guint property_id, GValue * value, GParamSpec * pspec) {
+static void _vala_no_output_post_processor_get_property (GObject * object, guint property_id, GValue * value, GParamSpec * pspec) {
 	NoOutputPostProcessor * self;
 	self = NO_OUTPUT_POST_PROCESSOR (object);
 	switch (property_id) {
@@ -384,7 +388,7 @@ static void no_output_post_processor_get_property (GObject * object, guint prope
 }
 
 
-static void no_output_post_processor_set_property (GObject * object, guint property_id, const GValue * value, GParamSpec * pspec) {
+static void _vala_no_output_post_processor_set_property (GObject * object, guint property_id, const GValue * value, GParamSpec * pspec) {
 	NoOutputPostProcessor * self;
 	self = NO_OUTPUT_POST_PROCESSOR (object);
 	switch (property_id) {
@@ -398,64 +402,74 @@ static void no_output_post_processor_set_property (GObject * object, guint prope
 }
 
 
-static glong string_get_length (const char* self) {
-	glong result;
-	g_return_val_if_fail (self != NULL, 0L);
-	result = g_utf8_strlen (self, (gssize) (-1));
-	return result;
-}
-
-
-static void all_output_post_processor_real_process (PostProcessor* base, GFile* file, const char* output, gint status) {
+static void all_output_post_processor_real_process (PostProcessor* base, GFile* file, const gchar* output, gint status) {
 	AllOutputPostProcessor * self;
+	gint _tmp0_;
+	gchar** _tmp1_;
+	gchar** _tmp2_ = NULL;
+	gchar** lines;
 	gint lines_length1;
 	gint _lines_size_;
-	char** _tmp1_;
-	char** _tmp0_;
-	char** lines;
 	gint l;
-	BuildIssue* _tmp2_;
+	gint _tmp3_;
+	BuildIssue* _tmp4_ = NULL;
 	BuildIssue issue = {0};
-	char* _tmp3_;
 	self = (AllOutputPostProcessor*) base;
 	g_return_if_fail (file != NULL);
 	g_return_if_fail (output != NULL);
 	post_processor_set_successful ((PostProcessor*) self, status == 0);
-	if (string_get_length (output) == 0) {
+	_tmp0_ = strlen (output);
+	if (_tmp0_ == 0) {
 		return;
 	}
-	lines = (_tmp1_ = _tmp0_ = g_strsplit (output, "\n", 0), lines_length1 = _vala_array_length (_tmp0_), _lines_size_ = lines_length1, _tmp1_);
+	_tmp2_ = _tmp1_ = g_strsplit (output, "\n", 0);
+	lines = _tmp2_;
+	lines_length1 = _vala_array_length (_tmp1_);
+	_lines_size_ = _vala_array_length (_tmp1_);
 	l = lines_length1;
 	g_return_if_fail (l > 0);
-	if (string_get_length (lines[l - 1]) == 0) {
+	_tmp3_ = strlen (lines[l - 1]);
+	if (_tmp3_ == 0) {
 		l--;
 	}
-	self->priv->issues = (_tmp2_ = g_new0 (BuildIssue, l), self->priv->issues = (_vala_BuildIssue_array_free (self->priv->issues, self->priv->issues_length1), NULL), self->priv->issues_length1 = l, self->priv->_issues_size_ = self->priv->issues_length1, _tmp2_);
+	_tmp4_ = g_new0 (BuildIssue, l);
+	self->priv->issues = (_vala_BuildIssue_array_free (self->priv->issues, self->priv->issues_length1), NULL);
+	self->priv->issues = _tmp4_;
+	self->priv->issues_length1 = l;
+	self->priv->_issues_size_ = l;
 	memset (&issue, 0, sizeof (BuildIssue));
 	issue.message_type = BUILD_MESSAGE_TYPE_OTHER;
-	issue.filename = (_tmp3_ = NULL, _g_free0 (issue.filename), _tmp3_);
+	_g_free0 (issue.filename);
+	issue.filename = NULL;
 	issue.start_line = -1;
 	issue.end_line = -1;
 	{
 		gint i;
 		i = 0;
 		{
-			gboolean _tmp4_;
-			_tmp4_ = TRUE;
+			gboolean _tmp5_;
+			_tmp5_ = TRUE;
 			while (TRUE) {
-				BuildIssue _tmp5_ = {0};
 				BuildIssue _tmp6_;
-				char* _tmp7_;
-				char* _tmp8_;
-				if (!_tmp4_) {
+				BuildIssue _tmp7_ = {0};
+				BuildIssue _tmp8_;
+				gchar* _tmp9_;
+				if (!_tmp5_) {
 					i++;
 				}
-				_tmp4_ = FALSE;
+				_tmp5_ = FALSE;
 				if (!(i < l)) {
 					break;
 				}
-				self->priv->issues[i] = (_tmp6_ = (build_issue_copy (&issue, &_tmp5_), _tmp5_), build_issue_destroy (&self->priv->issues[i]), _tmp6_);
-				self->priv->issues[i].message = (_tmp8_ = (_tmp7_ = lines[i], lines[i] = NULL, _tmp7_), _g_free0 (self->priv->issues[i].message), _tmp8_);
+				build_issue_copy (&issue, &_tmp7_);
+				_tmp6_ = _tmp7_;
+				_tmp8_ = _tmp6_;
+				build_issue_destroy (&self->priv->issues[i]);
+				self->priv->issues[i] = _tmp8_;
+				_tmp9_ = lines[i];
+				lines[i] = NULL;
+				_g_free0 (self->priv->issues[i].message);
+				self->priv->issues[i].message = _tmp9_;
 			}
 		}
 	}
@@ -467,10 +481,11 @@ static void all_output_post_processor_real_process (PostProcessor* base, GFile*
 static BuildIssue* _vala_array_dup4 (BuildIssue* self, int length) {
 	BuildIssue* result;
 	int i;
-	BuildIssue _tmp0_ = {0};
 	result = g_new0 (BuildIssue, length);
 	for (i = 0; i < length; i++) {
-		result[i] = (build_issue_copy (&self[i], &_tmp0_), _tmp0_);
+		BuildIssue _tmp0_ = {0};
+		build_issue_copy (&self[i], &_tmp0_);
+		result[i] = _tmp0_;
 	}
 	return result;
 }
@@ -481,8 +496,14 @@ static BuildIssue* all_output_post_processor_real_get_issues (PostProcessor* bas
 	BuildIssue* result = NULL;
 	BuildIssue* _tmp0_;
 	BuildIssue* _tmp1_;
+	BuildIssue* _tmp2_;
 	self = (AllOutputPostProcessor*) base;
-	result = (_tmp1_ = (_tmp0_ = self->priv->issues, (_tmp0_ == NULL) ? ((gpointer) _tmp0_) : _vala_array_dup4 (_tmp0_, self->priv->issues_length1)), *result_length1 = self->priv->issues_length1, _tmp1_);
+	_tmp0_ = (_tmp1_ = self->priv->issues, (_tmp1_ == NULL) ? ((gpointer) _tmp1_) : _vala_array_dup4 (_tmp1_, self->priv->issues_length1));
+	_tmp2_ = _tmp0_;
+	if (result_length1) {
+		*result_length1 = self->priv->issues_length1;
+	}
+	result = _tmp2_;
 	return result;
 }
 
@@ -519,8 +540,8 @@ static void all_output_post_processor_real_set_successful (PostProcessor* base,
 static void all_output_post_processor_class_init (AllOutputPostProcessorClass * klass) {
 	all_output_post_processor_parent_class = g_type_class_peek_parent (klass);
 	g_type_class_add_private (klass, sizeof (AllOutputPostProcessorPrivate));
-	G_OBJECT_CLASS (klass)->get_property = all_output_post_processor_get_property;
-	G_OBJECT_CLASS (klass)->set_property = all_output_post_processor_set_property;
+	G_OBJECT_CLASS (klass)->get_property = _vala_all_output_post_processor_get_property;
+	G_OBJECT_CLASS (klass)->set_property = _vala_all_output_post_processor_set_property;
 	G_OBJECT_CLASS (klass)->finalize = all_output_post_processor_finalize;
 	g_object_class_override_property (G_OBJECT_CLASS (klass), ALL_OUTPUT_POST_PROCESSOR_SUCCESSFUL, "successful");
 }
@@ -528,8 +549,8 @@ static void all_output_post_processor_class_init (AllOutputPostProcessorClass *
 
 static void all_output_post_processor_post_processor_interface_init (PostProcessorIface * iface) {
 	all_output_post_processor_post_processor_parent_iface = g_type_interface_peek_parent (iface);
-	iface->process = all_output_post_processor_real_process;
-	iface->get_issues = all_output_post_processor_real_get_issues;
+	iface->process = (void (*)(PostProcessor* ,GFile* ,const gchar* ,gint)) all_output_post_processor_real_process;
+	iface->get_issues = (BuildIssue* (*)(PostProcessor* ,int*)) all_output_post_processor_real_get_issues;
 	iface->get_successful = all_output_post_processor_real_get_successful;
 	iface->set_successful = all_output_post_processor_real_set_successful;
 }
@@ -538,7 +559,8 @@ static void all_output_post_processor_post_processor_interface_init (PostProcess
 static void all_output_post_processor_instance_init (AllOutputPostProcessor * self) {
 	BuildIssue* _tmp0_ = NULL;
 	self->priv = ALL_OUTPUT_POST_PROCESSOR_GET_PRIVATE (self);
-	self->priv->issues = (_tmp0_ = g_new0 (BuildIssue, 0), _tmp0_);
+	_tmp0_ = g_new0 (BuildIssue, 0);
+	self->priv->issues = _tmp0_;
 	self->priv->issues_length1 = 0;
 	self->priv->_issues_size_ = self->priv->issues_length1;
 }
@@ -566,7 +588,7 @@ GType all_output_post_processor_get_type (void) {
 }
 
 
-static void all_output_post_processor_get_property (GObject * object, guint property_id, GValue * value, GParamSpec * pspec) {
+static void _vala_all_output_post_processor_get_property (GObject * object, guint property_id, GValue * value, GParamSpec * pspec) {
 	AllOutputPostProcessor * self;
 	self = ALL_OUTPUT_POST_PROCESSOR (object);
 	switch (property_id) {
@@ -580,7 +602,7 @@ static void all_output_post_processor_get_property (GObject * object, guint prop
 }
 
 
-static void all_output_post_processor_set_property (GObject * object, guint property_id, const GValue * value, GParamSpec * pspec) {
+static void _vala_all_output_post_processor_set_property (GObject * object, guint property_id, const GValue * value, GParamSpec * pspec) {
 	AllOutputPostProcessor * self;
 	self = ALL_OUTPUT_POST_PROCESSOR (object);
 	switch (property_id) {
@@ -599,30 +621,28 @@ RubberPostProcessor* rubber_post_processor_construct (GType object_type) {
 	GError * _inner_error_ = NULL;
 	self = (RubberPostProcessor*) g_object_new (object_type, NULL);
 	if (rubber_post_processor_pattern == NULL) {
-		{
-			GRegex* _tmp0_;
-			GRegex* _tmp1_;
-			_tmp0_ = g_regex_new ("(?P<file>[^:\n]+)(:(?P<line>[0-9\\-]+))?:(?P<text>.+)$", G_REGEX_MULTILINE, 0, &_inner_error_);
-			if (_inner_error_ != NULL) {
-				if (_inner_error_->domain == G_REGEX_ERROR) {
-					goto __catch29_g_regex_error;
-				}
-				g_critical ("file %s: line %d: unexpected error: %s (%s, %d)", __FILE__, __LINE__, _inner_error_->message, g_quark_to_string (_inner_error_->domain), _inner_error_->code);
-				g_clear_error (&_inner_error_);
-				return NULL;
+		GRegex* _tmp0_ = NULL;
+		GRegex* _tmp1_;
+		_tmp0_ = g_regex_new ("(?P<file>[^:\n]+)(:(?P<line>[0-9\\-]+))?:(?P<text>.+)$", G_REGEX_MULTILINE, 0, &_inner_error_);
+		_tmp1_ = _tmp0_;
+		if (_inner_error_ != NULL) {
+			if (_inner_error_->domain == G_REGEX_ERROR) {
+				goto __catch29_g_regex_error;
 			}
-			rubber_post_processor_pattern = (_tmp1_ = _tmp0_, _g_regex_unref0 (rubber_post_processor_pattern), _tmp1_);
+			g_critical ("file %s: line %d: unexpected error: %s (%s, %d)", __FILE__, __LINE__, _inner_error_->message, g_quark_to_string (_inner_error_->domain), _inner_error_->code);
+			g_clear_error (&_inner_error_);
+			return NULL;
 		}
+		_g_regex_unref0 (rubber_post_processor_pattern);
+		rubber_post_processor_pattern = _tmp1_;
 		goto __finally29;
 		__catch29_g_regex_error:
 		{
 			GError * e;
 			e = _inner_error_;
 			_inner_error_ = NULL;
-			{
-				fprintf (stderr, "Warning in RubberPostProcessor: %s\n", e->message);
-				_g_error_free0 (e);
-			}
+			fprintf (stderr, "Warning in RubberPostProcessor: %s\n", e->message);
+			_g_error_free0 (e);
 		}
 		__finally29:
 		if (_inner_error_ != NULL) {
@@ -640,16 +660,26 @@ RubberPostProcessor* rubber_post_processor_new (void) {
 }
 
 
-static gboolean string_contains (const char* self, const char* needle) {
+static gboolean string_contains (const gchar* self, const gchar* needle) {
 	gboolean result = FALSE;
+	gchar* _tmp0_ = NULL;
 	g_return_val_if_fail (self != NULL, FALSE);
 	g_return_val_if_fail (needle != NULL, FALSE);
-	result = strstr (self, needle) != NULL;
+	_tmp0_ = strstr ((gchar*) self, (gchar*) needle);
+	result = _tmp0_ != NULL;
+	return result;
+}
+
+
+static gchar string_get (const gchar* self, glong index) {
+	gchar result = '\0';
+	g_return_val_if_fail (self != NULL, '\0');
+	result = ((gchar*) self)[index];
 	return result;
 }
 
 
-static void _vala_array_add12 (BuildIssue** array, int* length, int* size, const BuildIssue* value) {
+static void _vala_array_add11 (BuildIssue** array, int* length, int* size, const BuildIssue* value) {
 	if ((*length) == (*size)) {
 		*size = (*size) ? (2 * (*size)) : 4;
 		*array = g_renew (BuildIssue, *array, *size);
@@ -658,11 +688,15 @@ static void _vala_array_add12 (BuildIssue** array, int* length, int* size, const
 }
 
 
-static void rubber_post_processor_real_process (PostProcessor* base, GFile* file, const char* output, gint status) {
+static void rubber_post_processor_real_process (PostProcessor* base, GFile* file, const gchar* output, gint status) {
 	RubberPostProcessor * self;
-	GMatchInfo* match_info;
-	GMatchInfo* _tmp0_ = NULL;
-	GMatchInfo* _tmp1_;
+	GFile* _tmp0_ = NULL;
+	GFile* _tmp1_;
+	gchar* _tmp2_ = NULL;
+	gchar* _tmp3_;
+	gchar* parent_path;
+	GMatchInfo* match_info = NULL;
+	GMatchInfo* _tmp4_ = NULL;
 	GError * _inner_error_ = NULL;
 	self = (RubberPostProcessor*) base;
 	g_return_if_fail (file != NULL);
@@ -671,89 +705,123 @@ static void rubber_post_processor_real_process (PostProcessor* base, GFile* file
 	if (rubber_post_processor_pattern == NULL) {
 		return;
 	}
-	match_info = NULL;
-	g_regex_match (rubber_post_processor_pattern, output, 0, &_tmp0_);
-	match_info = (_tmp1_ = _tmp0_, _g_match_info_free0 (match_info), _tmp1_);
+	_tmp0_ = g_file_get_parent (file);
+	_tmp1_ = _tmp0_;
+	_tmp2_ = g_file_get_parse_name (_tmp1_);
+	_tmp3_ = _tmp2_;
+	_g_object_unref0 (_tmp1_);
+	parent_path = _tmp3_;
+	g_regex_match (rubber_post_processor_pattern, output, 0, &_tmp4_);
+	_g_match_info_free0 (match_info);
+	match_info = _tmp4_;
 	while (TRUE) {
+		gboolean _tmp5_;
 		BuildIssue issue = {0};
-		char* _tmp2_;
-		char* text;
-		gboolean _tmp3_ = FALSE;
-		char* line;
-		gboolean _tmp4_ = FALSE;
-		char* _tmp9_;
-		BuildIssue _tmp13_ = {0};
-		BuildIssue _tmp14_;
-		if (!g_match_info_matches (match_info)) {
+		gchar* _tmp6_ = NULL;
+		gchar* _tmp7_;
+		gchar* text;
+		gboolean _tmp8_ = FALSE;
+		gboolean _tmp9_;
+		gchar* _tmp11_ = NULL;
+		gchar* line;
+		gboolean _tmp12_ = FALSE;
+		gchar* _tmp21_ = NULL;
+		gchar _tmp22_;
+		BuildIssue _tmp24_;
+		BuildIssue _tmp25_ = {0};
+		_tmp5_ = g_match_info_matches (match_info);
+		if (!_tmp5_) {
 			break;
 		}
 		memset (&issue, 0, sizeof (BuildIssue));
-		text = g_strdup (issue.message = (_tmp2_ = g_match_info_fetch_named (match_info, "text"), _g_free0 (issue.message), _tmp2_));
+		_tmp6_ = g_match_info_fetch_named (match_info, "text");
+		_g_free0 (issue.message);
+		issue.message = _tmp6_;
+		_tmp7_ = g_strdup (issue.message);
+		text = _tmp7_;
 		issue.message_type = BUILD_MESSAGE_TYPE_ERROR;
-		if (string_contains (text, "Underfull")) {
-			_tmp3_ = TRUE;
+		_tmp9_ = string_contains (text, "Underfull");
+		if (_tmp9_) {
+			_tmp8_ = TRUE;
 		} else {
-			_tmp3_ = string_contains (text, "Overfull");
+			gboolean _tmp10_;
+			_tmp10_ = string_contains (text, "Overfull");
+			_tmp8_ = _tmp10_;
 		}
-		if (_tmp3_) {
+		if (_tmp8_) {
 			issue.message_type = BUILD_MESSAGE_TYPE_BADBOX;
 		}
-		issue.start_line = issue.end_line = -1;
-		line = g_match_info_fetch_named (match_info, "line");
+		issue.end_line = -1;
+		issue.start_line = issue.end_line;
+		_tmp11_ = g_match_info_fetch_named (match_info, "line");
+		line = _tmp11_;
 		if (line != NULL) {
-			_tmp4_ = string_get_length (line) > 0;
+			gint _tmp13_;
+			_tmp13_ = strlen (line);
+			_tmp12_ = _tmp13_ > 0;
 		} else {
-			_tmp4_ = FALSE;
+			_tmp12_ = FALSE;
 		}
-		if (_tmp4_) {
+		if (_tmp12_) {
+			gchar** _tmp14_;
+			gchar** _tmp15_ = NULL;
+			gchar** parts;
 			gint parts_length1;
 			gint _parts_size_;
-			char** _tmp6_;
-			char** _tmp5_;
-			char** parts;
-			gboolean _tmp7_ = FALSE;
-			gboolean _tmp8_ = FALSE;
-			parts = (_tmp6_ = _tmp5_ = g_strsplit (line, "-", 0), parts_length1 = _vala_array_length (_tmp5_), _parts_size_ = parts_length1, _tmp6_);
-			issue.start_line = atoi (parts[0]);
+			gint _tmp16_;
+			gboolean _tmp17_ = FALSE;
+			gboolean _tmp18_ = FALSE;
+			_tmp15_ = _tmp14_ = g_strsplit (line, "-", 0);
+			parts = _tmp15_;
+			parts_length1 = _vala_array_length (_tmp14_);
+			_parts_size_ = _vala_array_length (_tmp14_);
+			_tmp16_ = atoi (parts[0]);
+			issue.start_line = _tmp16_;
 			if (parts_length1 > 1) {
-				_tmp8_ = parts[1] != NULL;
+				_tmp18_ = parts[1] != NULL;
 			} else {
-				_tmp8_ = FALSE;
+				_tmp18_ = FALSE;
 			}
-			if (_tmp8_) {
-				_tmp7_ = string_get_length (parts[1]) > 0;
+			if (_tmp18_) {
+				gint _tmp19_;
+				_tmp19_ = strlen (parts[1]);
+				_tmp17_ = _tmp19_ > 0;
 			} else {
-				_tmp7_ = FALSE;
+				_tmp17_ = FALSE;
 			}
-			if (_tmp7_) {
-				issue.end_line = atoi (parts[1]);
+			if (_tmp17_) {
+				gint _tmp20_;
+				_tmp20_ = atoi (parts[1]);
+				issue.end_line = _tmp20_;
 			}
 			parts = (_vala_array_free (parts, parts_length1, (GDestroyNotify) g_free), NULL);
 		}
-		issue.filename = (_tmp9_ = g_match_info_fetch_named (match_info, "file"), _g_free0 (issue.filename), _tmp9_);
-		if (g_utf8_get_char (g_utf8_offset_to_pointer (issue.filename, 0)) != '/') {
-			GFile* _tmp10_;
-			char* _tmp11_;
-			char* _tmp12_;
-			issue.filename = (_tmp12_ = g_strdup_printf ("%s/%s", _tmp11_ = g_file_get_parse_name (_tmp10_ = g_file_get_parent (file)), issue.filename), _g_free0 (issue.filename), _tmp12_);
-			_g_free0 (_tmp11_);
-			_g_object_unref0 (_tmp10_);
+		_tmp21_ = g_match_info_fetch_named (match_info, "file");
+		_g_free0 (issue.filename);
+		issue.filename = _tmp21_;
+		_tmp22_ = string_get (issue.filename, (glong) 0);
+		if (_tmp22_ != '/') {
+			gchar* _tmp23_ = NULL;
+			_tmp23_ = g_strdup_printf ("%s/%s", parent_path, issue.filename);
+			_g_free0 (issue.filename);
+			issue.filename = _tmp23_;
 		}
-		_vala_array_add12 (&self->priv->issues, &self->priv->issues_length1, &self->priv->_issues_size_, (_tmp14_ = (build_issue_copy (&issue, &_tmp13_), _tmp13_), &_tmp14_));
-		{
-			g_match_info_next (match_info, &_inner_error_);
-			if (_inner_error_ != NULL) {
-				if (_inner_error_->domain == G_REGEX_ERROR) {
-					goto __catch30_g_regex_error;
-				}
-				_g_free0 (line);
-				_g_free0 (text);
-				build_issue_destroy (&issue);
-				_g_match_info_free0 (match_info);
-				g_critical ("file %s: line %d: unexpected error: %s (%s, %d)", __FILE__, __LINE__, _inner_error_->message, g_quark_to_string (_inner_error_->domain), _inner_error_->code);
-				g_clear_error (&_inner_error_);
-				return;
+		build_issue_copy (&issue, &_tmp25_);
+		_tmp24_ = _tmp25_;
+		_vala_array_add11 (&self->priv->issues, &self->priv->issues_length1, &self->priv->_issues_size_, &_tmp24_);
+		g_match_info_next (match_info, &_inner_error_);
+		if (_inner_error_ != NULL) {
+			if (_inner_error_->domain == G_REGEX_ERROR) {
+				goto __catch30_g_regex_error;
 			}
+			_g_free0 (line);
+			_g_free0 (text);
+			build_issue_destroy (&issue);
+			_g_match_info_free0 (match_info);
+			_g_free0 (parent_path);
+			g_critical ("file %s: line %d: unexpected error: %s (%s, %d)", __FILE__, __LINE__, _inner_error_->message, g_quark_to_string (_inner_error_->domain), _inner_error_->code);
+			g_clear_error (&_inner_error_);
+			return;
 		}
 		goto __finally30;
 		__catch30_g_regex_error:
@@ -761,14 +829,12 @@ static void rubber_post_processor_real_process (PostProcessor* base, GFile* file
 			GError * e;
 			e = _inner_error_;
 			_inner_error_ = NULL;
-			{
-				fprintf (stderr, "Warning: RubberPostProcessor: %s\n", e->message);
-				_g_error_free0 (e);
-				_g_free0 (line);
-				_g_free0 (text);
-				build_issue_destroy (&issue);
-				break;
-			}
+			fprintf (stderr, "Warning: RubberPostProcessor: %s\n", e->message);
+			_g_error_free0 (e);
+			_g_free0 (line);
+			_g_free0 (text);
+			build_issue_destroy (&issue);
+			break;
 		}
 		__finally30:
 		if (_inner_error_ != NULL) {
@@ -776,6 +842,7 @@ static void rubber_post_processor_real_process (PostProcessor* base, GFile* file
 			_g_free0 (text);
 			build_issue_destroy (&issue);
 			_g_match_info_free0 (match_info);
+			_g_free0 (parent_path);
 			g_critical ("file %s: line %d: uncaught error: %s (%s, %d)", __FILE__, __LINE__, _inner_error_->message, g_quark_to_string (_inner_error_->domain), _inner_error_->code);
 			g_clear_error (&_inner_error_);
 			return;
@@ -785,16 +852,18 @@ static void rubber_post_processor_real_process (PostProcessor* base, GFile* file
 		build_issue_destroy (&issue);
 	}
 	_g_match_info_free0 (match_info);
+	_g_free0 (parent_path);
 }
 
 
 static BuildIssue* _vala_array_dup5 (BuildIssue* self, int length) {
 	BuildIssue* result;
 	int i;
-	BuildIssue _tmp0_ = {0};
 	result = g_new0 (BuildIssue, length);
 	for (i = 0; i < length; i++) {
-		result[i] = (build_issue_copy (&self[i], &_tmp0_), _tmp0_);
+		BuildIssue _tmp0_ = {0};
+		build_issue_copy (&self[i], &_tmp0_);
+		result[i] = _tmp0_;
 	}
 	return result;
 }
@@ -805,8 +874,14 @@ static BuildIssue* rubber_post_processor_real_get_issues (PostProcessor* base, i
 	BuildIssue* result = NULL;
 	BuildIssue* _tmp0_;
 	BuildIssue* _tmp1_;
+	BuildIssue* _tmp2_;
 	self = (RubberPostProcessor*) base;
-	result = (_tmp1_ = (_tmp0_ = self->priv->issues, (_tmp0_ == NULL) ? ((gpointer) _tmp0_) : _vala_array_dup5 (_tmp0_, self->priv->issues_length1)), *result_length1 = self->priv->issues_length1, _tmp1_);
+	_tmp0_ = (_tmp1_ = self->priv->issues, (_tmp1_ == NULL) ? ((gpointer) _tmp1_) : _vala_array_dup5 (_tmp1_, self->priv->issues_length1));
+	_tmp2_ = _tmp0_;
+	if (result_length1) {
+		*result_length1 = self->priv->issues_length1;
+	}
+	result = _tmp2_;
 	return result;
 }
 
@@ -831,8 +906,8 @@ static void rubber_post_processor_real_set_successful (PostProcessor* base, gboo
 static void rubber_post_processor_class_init (RubberPostProcessorClass * klass) {
 	rubber_post_processor_parent_class = g_type_class_peek_parent (klass);
 	g_type_class_add_private (klass, sizeof (RubberPostProcessorPrivate));
-	G_OBJECT_CLASS (klass)->get_property = rubber_post_processor_get_property;
-	G_OBJECT_CLASS (klass)->set_property = rubber_post_processor_set_property;
+	G_OBJECT_CLASS (klass)->get_property = _vala_rubber_post_processor_get_property;
+	G_OBJECT_CLASS (klass)->set_property = _vala_rubber_post_processor_set_property;
 	G_OBJECT_CLASS (klass)->finalize = rubber_post_processor_finalize;
 	g_object_class_override_property (G_OBJECT_CLASS (klass), RUBBER_POST_PROCESSOR_SUCCESSFUL, "successful");
 }
@@ -840,8 +915,8 @@ static void rubber_post_processor_class_init (RubberPostProcessorClass * klass)
 
 static void rubber_post_processor_post_processor_interface_init (PostProcessorIface * iface) {
 	rubber_post_processor_post_processor_parent_iface = g_type_interface_peek_parent (iface);
-	iface->process = rubber_post_processor_real_process;
-	iface->get_issues = rubber_post_processor_real_get_issues;
+	iface->process = (void (*)(PostProcessor* ,GFile* ,const gchar* ,gint)) rubber_post_processor_real_process;
+	iface->get_issues = (BuildIssue* (*)(PostProcessor* ,int*)) rubber_post_processor_real_get_issues;
 	iface->get_successful = rubber_post_processor_real_get_successful;
 	iface->set_successful = rubber_post_processor_real_set_successful;
 }
@@ -850,7 +925,8 @@ static void rubber_post_processor_post_processor_interface_init (PostProcessorIf
 static void rubber_post_processor_instance_init (RubberPostProcessor * self) {
 	BuildIssue* _tmp0_ = NULL;
 	self->priv = RUBBER_POST_PROCESSOR_GET_PRIVATE (self);
-	self->priv->issues = (_tmp0_ = g_new0 (BuildIssue, 0), _tmp0_);
+	_tmp0_ = g_new0 (BuildIssue, 0);
+	self->priv->issues = _tmp0_;
 	self->priv->issues_length1 = 0;
 	self->priv->_issues_size_ = self->priv->issues_length1;
 }
@@ -878,7 +954,7 @@ GType rubber_post_processor_get_type (void) {
 }
 
 
-static void rubber_post_processor_get_property (GObject * object, guint property_id, GValue * value, GParamSpec * pspec) {
+static void _vala_rubber_post_processor_get_property (GObject * object, guint property_id, GValue * value, GParamSpec * pspec) {
 	RubberPostProcessor * self;
 	self = RUBBER_POST_PROCESSOR (object);
 	switch (property_id) {
@@ -892,7 +968,7 @@ static void rubber_post_processor_get_property (GObject * object, guint property
 }
 
 
-static void rubber_post_processor_set_property (GObject * object, guint property_id, const GValue * value, GParamSpec * pspec) {
+static void _vala_rubber_post_processor_set_property (GObject * object, guint property_id, const GValue * value, GParamSpec * pspec) {
 	RubberPostProcessor * self;
 	self = RUBBER_POST_PROCESSOR (object);
 	switch (property_id) {
@@ -937,4 +1013,3 @@ static gint _vala_array_length (gpointer array) {
 
 
 
-
diff --git a/src/C/preferences_dialog.c b/src/C/preferences_dialog.c
index 6344f12..97378b7 100644
--- a/src/C/preferences_dialog.c
+++ b/src/C/preferences_dialog.c
@@ -1,4 +1,4 @@
-/* preferences_dialog.c generated by valac 0.10.3, the Vala compiler
+/* preferences_dialog.c generated by valac 0.12.1, the Vala compiler
  * generated from preferences_dialog.vala, do not modify */
 
 /*
@@ -50,6 +50,7 @@ typedef struct _PreferencesDialogPrivate PreferencesDialogPrivate;
 #define PREFERENCES_DIALOG_TYPE_BUILD_TOOL_COLUMN (preferences_dialog_build_tool_column_get_type ())
 #define _g_object_unref0(var) ((var == NULL) ? NULL : (var = (g_object_unref (var), NULL)))
 #define _g_free0(var) (var = (g_free (var), NULL))
+typedef struct _Block1Data Block1Data;
 #define _gtk_tree_path_free0(var) ((var == NULL) ? NULL : (var = (gtk_tree_path_free (var), NULL)))
 
 #define TYPE_APP_SETTINGS (app_settings_get_type ())
@@ -61,7 +62,6 @@ typedef struct _PreferencesDialogPrivate PreferencesDialogPrivate;
 
 typedef struct _AppSettings AppSettings;
 typedef struct _AppSettingsClass AppSettingsClass;
-typedef struct _Block1Data Block1Data;
 #define _g_error_free0(var) ((var == NULL) ? NULL : (var = (g_error_free (var), NULL)))
 typedef struct _Block2Data Block2Data;
 
@@ -128,25 +128,25 @@ struct _Block2Data {
 
 struct _BuildJob {
 	gboolean must_succeed;
-	char* post_processor;
-	char* command;
-	char** command_args;
+	gchar* post_processor;
+	gchar* command;
+	gchar** command_args;
 	gint command_args_length1;
 };
 
 struct _BuildTool {
-	char* description;
-	char* extensions;
-	char* label;
-	char* icon;
+	gchar* description;
+	gchar* extensions;
+	gchar* label;
+	gchar* icon;
 	gboolean compilation;
 	GList* jobs;
 };
 
 
+static gpointer preferences_dialog_parent_class = NULL;
 static PreferencesDialog* preferences_dialog_preferences_dialog;
 static PreferencesDialog* preferences_dialog_preferences_dialog = NULL;
-static gpointer preferences_dialog_parent_class = NULL;
 
 GType preferences_dialog_get_type (void) G_GNUC_CONST;
 #define PREFERENCES_DIALOG_GET_PRIVATE(o) (G_TYPE_INSTANCE_GET_PRIVATE ((o), TYPE_PREFERENCES_DIALOG, PreferencesDialogPrivate))
@@ -158,36 +158,36 @@ static GType preferences_dialog_build_tool_column_get_type (void) G_GNUC_UNUSED;
 static PreferencesDialog* preferences_dialog_new (void);
 static PreferencesDialog* preferences_dialog_construct (GType object_type);
 static void _lambda0_ (gint response_id, PreferencesDialog* self);
-static GtkDialog* preferences_dialog_get_reset_all_confirm_dialog (PreferencesDialog* self, const char* msg);
+static GtkDialog* preferences_dialog_get_reset_all_confirm_dialog (PreferencesDialog* self, const gchar* msg);
 static void __lambda0__gtk_dialog_response (GtkDialog* _sender, gint response_id, gpointer self);
-static void preferences_dialog_init_schemes_treeview (PreferencesDialog* self, GtkTreeView* treeview, const char* current_id);
+static Block1Data* block1_data_ref (Block1Data* _data1_);
+static void block1_data_unref (Block1Data* _data1_);
+static void preferences_dialog_init_schemes_treeview (PreferencesDialog* self, GtkTreeView* treeview, const gchar* current_id);
 static void _lambda1_ (GtkTreeView* treeview, Block1Data* _data1_);
 static void __lambda1__gtk_tree_view_cursor_changed (GtkTreeView* _sender, gpointer self);
-static void _lambda2_ (GSettings* setting, const char* key, Block1Data* _data1_);
-static void __lambda2__g_settings_changed (GSettings* _sender, const char* key, gpointer self);
-static void preferences_dialog_set_sensitivity (PreferencesDialog* self, GSettings* settings, const char* key, GtkWidget* widget, gboolean must_be_enabled);
-static void _lambda4_ (GSettings* setting, const char* key, Block1Data* _data1_);
-static void __lambda4__g_settings_changed (GSettings* _sender, const char* key, gpointer self);
-static void _lambda5_ (GSettings* setting, const char* key, Block1Data* _data1_);
-static void __lambda5__g_settings_changed (GSettings* _sender, const char* key, gpointer self);
+static void _lambda2_ (GSettings* setting, const gchar* key, Block1Data* _data1_);
+static void __lambda2__g_settings_changed (GSettings* _sender, const gchar* key, gpointer self);
+static void preferences_dialog_set_sensitivity (PreferencesDialog* self, GSettings* settings, const gchar* key, GtkWidget* widget, gboolean must_be_enabled);
+static void _lambda4_ (GSettings* setting, const gchar* key, Block1Data* _data1_);
+static void __lambda4__g_settings_changed (GSettings* _sender, const gchar* key, gpointer self);
+static void _lambda5_ (GSettings* setting, const gchar* key, Block1Data* _data1_);
+static void __lambda5__g_settings_changed (GSettings* _sender, const gchar* key, gpointer self);
 static void preferences_dialog_set_system_font_label (PreferencesDialog* self, GtkButton* button);
 GType app_settings_get_type (void) G_GNUC_CONST;
 AppSettings* app_settings_get_default (void);
-static void _lambda93_ (Block1Data* _data1_);
-static void __lambda93__g_object_notify (GObject* _sender, GParamSpec* pspec, gpointer self);
+static void _lambda96_ (Block1Data* _data1_);
+static void __lambda96__g_object_notify (GObject* _sender, GParamSpec* pspec, gpointer self);
 static void preferences_dialog_init_build_tools_treeview (PreferencesDialog* self);
 static void preferences_dialog_init_build_tools_buttons (PreferencesDialog* self, GtkButton* bt_new, GtkButton* bt_delete, GtkButton* bt_up, GtkButton* bt_down, GtkButton* bt_properties, GtkButton* bt_reset);
-static Block1Data* block1_data_ref (Block1Data* _data1_);
-static void block1_data_unref (Block1Data* _data1_);
-static void _lambda3_ (GSettings* setting, const char* k, Block2Data* _data2_);
-static void __lambda3__g_settings_changed (GSettings* _sender, const char* key, gpointer self);
 static Block2Data* block2_data_ref (Block2Data* _data2_);
 static void block2_data_unref (Block2Data* _data2_);
-const char* app_settings_get_system_font (AppSettings* self);
+static void _lambda3_ (GSettings* setting, const gchar* k, Block2Data* _data2_);
+static void __lambda3__g_settings_changed (GSettings* _sender, const gchar* key, gpointer self);
+const gchar* app_settings_get_system_font (AppSettings* self);
 GType main_window_get_type (void) G_GNUC_CONST;
 void preferences_dialog_show_me (MainWindow* parent);
-static void _lambda64_ (void);
-static void __lambda64__gtk_object_destroy (GtkObject* _sender, gpointer self);
+static void _lambda67_ (void);
+static void __lambda67__gtk_object_destroy (GtkObject* _sender, gpointer self);
 static void preferences_dialog_update_build_tools_store (PreferencesDialog* self);
 GType build_tool_get_type (void) G_GNUC_CONST;
 GType build_job_get_type (void) G_GNUC_CONST;
@@ -200,32 +200,30 @@ void build_tool_free (BuildTool* self);
 void build_tool_copy (const BuildTool* self, BuildTool* dest);
 void build_tool_destroy (BuildTool* self);
 GeeLinkedList* app_settings_get_build_tools (AppSettings* self);
-static void _lambda94_ (PreferencesDialog* self);
+static void _lambda97_ (PreferencesDialog* self);
 static void preferences_dialog_run_build_tool_dialog (PreferencesDialog* self, gint num);
-static void __lambda94__gtk_button_clicked (GtkButton* _sender, gpointer self);
-static void _lambda102_ (PreferencesDialog* self);
+static void __lambda97__gtk_button_clicked (GtkButton* _sender, gpointer self);
+static void _lambda105_ (PreferencesDialog* self);
 gint utils_get_selected_row (GtkTreeView* view, GtkTreeIter* iter_to_set);
-static void __lambda102__gtk_button_clicked (GtkButton* _sender, gpointer self);
-static void _lambda103_ (PreferencesDialog* self);
+static void __lambda105__gtk_button_clicked (GtkButton* _sender, gpointer self);
+static void _lambda106_ (PreferencesDialog* self);
 void app_settings_delete_build_tool (AppSettings* self, gint num);
-static void __lambda103__gtk_button_clicked (GtkButton* _sender, gpointer self);
-static void _lambda104_ (PreferencesDialog* self);
+static void __lambda106__gtk_button_clicked (GtkButton* _sender, gpointer self);
+static void _lambda107_ (PreferencesDialog* self);
 gboolean utils_tree_model_iter_prev (GtkTreeModel* model, GtkTreeIter* iter);
 void app_settings_move_build_tool_up (AppSettings* self, gint num);
-static void __lambda104__gtk_button_clicked (GtkButton* _sender, gpointer self);
-static void _lambda105_ (PreferencesDialog* self);
+static void __lambda107__gtk_button_clicked (GtkButton* _sender, gpointer self);
+static void _lambda108_ (PreferencesDialog* self);
 void app_settings_move_build_tool_down (AppSettings* self, gint num);
-static void __lambda105__gtk_button_clicked (GtkButton* _sender, gpointer self);
-static void _lambda106_ (PreferencesDialog* self);
+static void __lambda108__gtk_button_clicked (GtkButton* _sender, gpointer self);
+static void _lambda109_ (PreferencesDialog* self);
 void app_settings_reset_all_build_tools (AppSettings* self);
-static void __lambda106__gtk_button_clicked (GtkButton* _sender, gpointer self);
+static void __lambda109__gtk_button_clicked (GtkButton* _sender, gpointer self);
 gboolean build_tool_dialog_show_me (GtkWindow* parent, gint num);
 static void preferences_dialog_finalize (GObject* obj);
 static void _vala_array_destroy (gpointer array, gint array_length, GDestroyNotify destroy_func);
 static void _vala_array_free (gpointer array, gint array_length, GDestroyNotify destroy_func);
 static gint _vala_array_length (gpointer array);
-static int _vala_strcmp0 (const char * str1, const char * str2);
-
 
 
 static GType preferences_dialog_style_schemes_get_type (void) {
@@ -253,52 +251,78 @@ static GType preferences_dialog_build_tool_column_get_type (void) {
 
 
 static void _lambda0_ (gint response_id, PreferencesDialog* self) {
+	const gchar* _tmp0_ = NULL;
+	GtkDialog* _tmp1_ = NULL;
 	GtkDialog* dialog;
+	gint _tmp2_;
 	gint resp;
+	gchar* _tmp3_;
+	gchar* _tmp4_;
+	gchar* _tmp5_;
+	gchar** _tmp6_ = NULL;
+	gchar** settings_str;
 	gint settings_str_length1;
 	gint _settings_str_size_;
-	char** _tmp1_;
-	char** _tmp0_ = NULL;
-	char** settings_str;
 	if (response_id == GTK_RESPONSE_CLOSE) {
 		gtk_widget_hide ((GtkWidget*) self);
 		return;
 	}
-	dialog = preferences_dialog_get_reset_all_confirm_dialog (self, _ ("Do you really want to reset all preferences?"));
-	resp = gtk_dialog_run (dialog);
+	_tmp0_ = _ ("Do you really want to reset all preferences?");
+	_tmp1_ = preferences_dialog_get_reset_all_confirm_dialog (self, _tmp0_);
+	dialog = _tmp1_;
+	_tmp2_ = gtk_dialog_run (dialog);
+	resp = _tmp2_;
 	gtk_object_destroy ((GtkObject*) dialog);
 	if (resp != GTK_RESPONSE_YES) {
 		_g_object_unref0 (dialog);
 		return;
 	}
-	settings_str = (_tmp1_ = (_tmp0_ = g_new0 (char*, 3 + 1), _tmp0_[0] = g_strdup ("org.gnome.latexila.preferences.editor"), _tmp0_[1] = g_strdup ("org.gnome.latexila.preferences.latex"), _tmp0_[2] = g_strdup ("org.gnome.latexila.preferences.file-browser"), _tmp0_), settings_str_length1 = 3, _settings_str_size_ = settings_str_length1, _tmp1_);
+	_tmp3_ = g_strdup ("org.gnome.latexila.preferences.editor");
+	_tmp4_ = g_strdup ("org.gnome.latexila.preferences.latex");
+	_tmp5_ = g_strdup ("org.gnome.latexila.preferences.file-browser");
+	_tmp6_ = g_new0 (gchar*, 3 + 1);
+	_tmp6_[0] = _tmp3_;
+	_tmp6_[1] = _tmp4_;
+	_tmp6_[2] = _tmp5_;
+	settings_str = _tmp6_;
+	settings_str_length1 = 3;
+	_settings_str_size_ = 3;
 	{
-		char** setting_str_collection;
+		gchar** setting_str_collection;
 		int setting_str_collection_length1;
 		int setting_str_it;
 		setting_str_collection = settings_str;
 		setting_str_collection_length1 = settings_str_length1;
 		for (setting_str_it = 0; setting_str_it < settings_str_length1; setting_str_it = setting_str_it + 1) {
-			char* setting_str;
-			setting_str = g_strdup (setting_str_collection[setting_str_it]);
+			gchar* _tmp7_;
+			gchar* setting_str;
+			_tmp7_ = g_strdup (setting_str_collection[setting_str_it]);
+			setting_str = _tmp7_;
 			{
+				GSettings* _tmp8_ = NULL;
 				GSettings* settings;
+				gchar** _tmp9_;
+				gchar** _tmp10_ = NULL;
+				gchar** keys;
 				gint keys_length1;
 				gint _keys_size_;
-				char** _tmp3_;
-				char** _tmp2_;
-				char** keys;
-				settings = g_settings_new (setting_str);
-				keys = (_tmp3_ = _tmp2_ = g_settings_list_keys (settings), keys_length1 = _vala_array_length (_tmp2_), _keys_size_ = keys_length1, _tmp3_);
+				_tmp8_ = g_settings_new (setting_str);
+				settings = _tmp8_;
+				_tmp10_ = _tmp9_ = g_settings_list_keys (settings);
+				keys = _tmp10_;
+				keys_length1 = _vala_array_length (_tmp9_);
+				_keys_size_ = _vala_array_length (_tmp9_);
 				{
-					char** key_collection;
+					gchar** key_collection;
 					int key_collection_length1;
 					int key_it;
 					key_collection = keys;
 					key_collection_length1 = keys_length1;
 					for (key_it = 0; key_it < keys_length1; key_it = key_it + 1) {
-						char* key;
-						key = g_strdup (key_collection[key_it]);
+						gchar* _tmp11_;
+						gchar* key;
+						_tmp11_ = g_strdup (key_collection[key_it]);
+						key = _tmp11_;
 						{
 							g_settings_reset (settings, key);
 							_g_free0 (key);
@@ -321,6 +345,25 @@ static void __lambda0__gtk_dialog_response (GtkDialog* _sender, gint response_id
 }
 
 
+static Block1Data* block1_data_ref (Block1Data* _data1_) {
+	g_atomic_int_inc (&_data1_->_ref_count_);
+	return _data1_;
+}
+
+
+static void block1_data_unref (Block1Data* _data1_) {
+	if (g_atomic_int_dec_and_test (&_data1_->_ref_count_)) {
+		_g_object_unref0 (_data1_->self);
+		_g_object_unref0 (_data1_->settings);
+		_g_object_unref0 (_data1_->interactive_comp_label);
+		_g_object_unref0 (_data1_->schemes_treeview);
+		_g_object_unref0 (_data1_->default_font_checkbutton);
+		_g_object_unref0 (_data1_->autosave_label);
+		g_slice_free (Block1Data, _data1_);
+	}
+}
+
+
 static gpointer _g_object_ref0 (gpointer self) {
 	return self ? g_object_ref (self) : NULL;
 }
@@ -328,20 +371,24 @@ static gpointer _g_object_ref0 (gpointer self) {
 
 static void _lambda1_ (GtkTreeView* treeview, Block1Data* _data1_) {
 	PreferencesDialog * self;
-	GtkTreePath* tree_path;
+	GtkTreePath* tree_path = NULL;
 	GtkTreeIter iter = {0};
 	GtkTreePath* _tmp0_ = NULL;
-	GtkTreePath* _tmp1_;
+	GtkTreeModel* _tmp1_ = NULL;
+	GtkTreeModel* _tmp2_;
 	GtkTreeModel* model;
-	char* id;
+	GtkTreeIter _tmp3_ = {0};
+	gchar* id = NULL;
 	self = _data1_->self;
 	g_return_if_fail (treeview != NULL);
-	tree_path = NULL;
 	gtk_tree_view_get_cursor (_data1_->schemes_treeview, &_tmp0_, NULL);
-	tree_path = (_tmp1_ = _tmp0_, _gtk_tree_path_free0 (tree_path), _tmp1_);
-	model = _g_object_ref0 (gtk_tree_view_get_model (treeview));
-	gtk_tree_model_get_iter (model, &iter, tree_path);
-	id = NULL;
+	_gtk_tree_path_free0 (tree_path);
+	tree_path = _tmp0_;
+	_tmp1_ = gtk_tree_view_get_model (treeview);
+	_tmp2_ = _g_object_ref0 (_tmp1_);
+	model = _tmp2_;
+	gtk_tree_model_get_iter (model, &_tmp3_, tree_path);
+	iter = _tmp3_;
 	gtk_tree_model_get (model, &iter, PREFERENCES_DIALOG_STYLE_SCHEMES_ID, &id, -1, -1);
 	g_settings_set_string (_data1_->settings, "scheme", id);
 	_g_free0 (id);
@@ -355,28 +402,42 @@ static void __lambda1__gtk_tree_view_cursor_changed (GtkTreeView* _sender, gpoin
 }
 
 
-static void _lambda2_ (GSettings* setting, const char* key, Block1Data* _data1_) {
+static void _lambda2_ (GSettings* setting, const gchar* key, Block1Data* _data1_) {
 	PreferencesDialog * self;
-	char* val;
+	gchar* _tmp0_ = NULL;
+	gchar* val;
+	GtkTreeModel* _tmp1_ = NULL;
+	GtkTreeModel* _tmp2_;
 	GtkTreeModel* model;
 	GtkTreeIter iter = {0};
+	GtkTreeIter _tmp3_ = {0};
+	gboolean _tmp4_;
 	gboolean valid;
 	self = _data1_->self;
 	g_return_if_fail (setting != NULL);
 	g_return_if_fail (key != NULL);
-	val = g_settings_get_string (setting, key);
-	model = _g_object_ref0 (gtk_tree_view_get_model (_data1_->schemes_treeview));
-	valid = gtk_tree_model_get_iter_first (model, &iter);
+	_tmp0_ = g_settings_get_string (setting, key);
+	val = _tmp0_;
+	_tmp1_ = gtk_tree_view_get_model (_data1_->schemes_treeview);
+	_tmp2_ = _g_object_ref0 (_tmp1_);
+	model = _tmp2_;
+	_tmp4_ = gtk_tree_model_get_iter_first (model, &_tmp3_);
+	iter = _tmp3_;
+	valid = _tmp4_;
 	while (TRUE) {
-		char* scheme;
+		gchar* scheme = NULL;
+		gboolean _tmp7_;
 		if (!valid) {
 			break;
 		}
-		scheme = NULL;
 		gtk_tree_model_get (model, &iter, PREFERENCES_DIALOG_STYLE_SCHEMES_ID, &scheme, -1, -1);
-		if (_vala_strcmp0 (scheme, val) == 0) {
+		if (g_strcmp0 (scheme, val) == 0) {
+			GtkTreeSelection* _tmp5_ = NULL;
+			GtkTreeSelection* _tmp6_;
 			GtkTreeSelection* select;
-			select = _g_object_ref0 (gtk_tree_view_get_selection (_data1_->schemes_treeview));
+			_tmp5_ = gtk_tree_view_get_selection (_data1_->schemes_treeview);
+			_tmp6_ = _g_object_ref0 (_tmp5_);
+			select = _tmp6_;
 			gtk_tree_selection_select_iter (select, &iter);
 			_g_object_unref0 (select);
 			_g_free0 (scheme);
@@ -384,7 +445,8 @@ static void _lambda2_ (GSettings* setting, const char* key, Block1Data* _data1_)
 			_g_free0 (val);
 			return;
 		}
-		valid = gtk_tree_model_iter_next (model, &iter);
+		_tmp7_ = gtk_tree_model_iter_next (model, &iter);
+		valid = _tmp7_;
 		_g_free0 (scheme);
 	}
 	_g_object_unref0 (model);
@@ -392,325 +454,502 @@ static void _lambda2_ (GSettings* setting, const char* key, Block1Data* _data1_)
 }
 
 
-static void __lambda2__g_settings_changed (GSettings* _sender, const char* key, gpointer self) {
+static void __lambda2__g_settings_changed (GSettings* _sender, const gchar* key, gpointer self) {
 	_lambda2_ (_sender, key, self);
 }
 
 
-static void _lambda4_ (GSettings* setting, const char* key, Block1Data* _data1_) {
+static void _lambda4_ (GSettings* setting, const gchar* key, Block1Data* _data1_) {
 	PreferencesDialog * self;
 	guint val = 0U;
-	const char* _tmp0_;
+	const gchar* _tmp0_ = NULL;
 	self = _data1_->self;
 	g_return_if_fail (setting != NULL);
 	g_return_if_fail (key != NULL);
 	g_settings_get (setting, key, "u", &val);
-	_tmp0_ = NULL;
 	if (val > 1) {
-		_tmp0_ = _ ("minutes");
+		const gchar* _tmp1_ = NULL;
+		_tmp1_ = _ ("minutes");
+		_tmp0_ = _tmp1_;
 	} else {
-		_tmp0_ = _ ("minute");
+		const gchar* _tmp2_ = NULL;
+		_tmp2_ = _ ("minute");
+		_tmp0_ = _tmp2_;
 	}
 	gtk_label_set_label (_data1_->autosave_label, _tmp0_);
 }
 
 
-static void __lambda4__g_settings_changed (GSettings* _sender, const char* key, gpointer self) {
+static void __lambda4__g_settings_changed (GSettings* _sender, const gchar* key, gpointer self) {
 	_lambda4_ (_sender, key, self);
 }
 
 
-static void _lambda5_ (GSettings* setting, const char* key, Block1Data* _data1_) {
+static void _lambda5_ (GSettings* setting, const gchar* key, Block1Data* _data1_) {
 	PreferencesDialog * self;
+	gint _tmp0_;
 	gint val;
-	const char* _tmp0_;
+	const gchar* _tmp1_ = NULL;
 	self = _data1_->self;
 	g_return_if_fail (setting != NULL);
 	g_return_if_fail (key != NULL);
-	val = g_settings_get_int (setting, key);
-	_tmp0_ = NULL;
+	_tmp0_ = g_settings_get_int (setting, key);
+	val = _tmp0_;
 	if (val > 1) {
-		_tmp0_ = _ ("characters");
+		const gchar* _tmp2_ = NULL;
+		_tmp2_ = _ ("characters");
+		_tmp1_ = _tmp2_;
 	} else {
-		_tmp0_ = _ ("character");
+		const gchar* _tmp3_ = NULL;
+		_tmp3_ = _ ("character");
+		_tmp1_ = _tmp3_;
 	}
-	gtk_label_set_label (_data1_->interactive_comp_label, _tmp0_);
+	gtk_label_set_label (_data1_->interactive_comp_label, _tmp1_);
 }
 
 
-static void __lambda5__g_settings_changed (GSettings* _sender, const char* key, gpointer self) {
+static void __lambda5__g_settings_changed (GSettings* _sender, const gchar* key, gpointer self) {
 	_lambda5_ (_sender, key, self);
 }
 
 
-static void _lambda93_ (Block1Data* _data1_) {
+static void _lambda96_ (Block1Data* _data1_) {
 	PreferencesDialog * self;
 	self = _data1_->self;
 	preferences_dialog_set_system_font_label (self, _data1_->default_font_checkbutton);
 }
 
 
-static void __lambda93__g_object_notify (GObject* _sender, GParamSpec* pspec, gpointer self) {
-	_lambda93_ (self);
-}
-
-
-static Block1Data* block1_data_ref (Block1Data* _data1_) {
-	g_atomic_int_inc (&_data1_->_ref_count_);
-	return _data1_;
-}
-
-
-static void block1_data_unref (Block1Data* _data1_) {
-	if (g_atomic_int_dec_and_test (&_data1_->_ref_count_)) {
-		_g_object_unref0 (_data1_->self);
-		_g_object_unref0 (_data1_->settings);
-		_g_object_unref0 (_data1_->interactive_comp_label);
-		_g_object_unref0 (_data1_->schemes_treeview);
-		_g_object_unref0 (_data1_->default_font_checkbutton);
-		_g_object_unref0 (_data1_->autosave_label);
-		g_slice_free (Block1Data, _data1_);
-	}
+static void __lambda96__g_object_notify (GObject* _sender, GParamSpec* pspec, gpointer self) {
+	_lambda96_ (self);
 }
 
 
 static PreferencesDialog* preferences_dialog_construct (GType object_type) {
-	PreferencesDialog * self;
+	PreferencesDialog * self = NULL;
+	const gchar* _tmp0_ = NULL;
+	GtkButton* _tmp1_ = NULL;
 	GtkButton* reset_button;
+	GtkImage* _tmp2_ = NULL;
 	GtkImage* image;
-	char* path;
+	const gchar* _tmp3_ = NULL;
+	gchar* _tmp4_ = NULL;
+	gchar* path;
+	Block1Data* _data1_;
+	GtkBuilder* _tmp5_ = NULL;
+	GtkBuilder* builder;
+	GObject* _tmp6_ = NULL;
+	GtkNotebook* _tmp7_;
+	GtkNotebook* notebook;
+	GObject* _tmp8_ = NULL;
+	GObject* _tmp9_;
+	GObject* display_line_nb_checkbutton;
+	GObject* _tmp10_ = NULL;
+	GObject* _tmp11_;
+	GObject* tab_width_spinbutton;
+	GObject* _tmp12_ = NULL;
+	GtkWidget* _tmp13_;
+	GtkWidget* insert_spaces_checkbutton;
+	GObject* _tmp14_ = NULL;
+	GtkWidget* _tmp15_;
+	GtkWidget* forget_no_tabs;
+	GObject* _tmp16_ = NULL;
+	GObject* _tmp17_;
+	GObject* hl_current_line_checkbutton;
+	GObject* _tmp18_ = NULL;
+	GObject* _tmp19_;
+	GObject* bracket_matching_checkbutton;
+	GObject* _tmp20_ = NULL;
+	GObject* _tmp21_;
+	GObject* backup_checkbutton;
+	GObject* _tmp22_ = NULL;
+	GObject* _tmp23_;
+	GObject* autosave_checkbutton;
+	GObject* _tmp24_ = NULL;
+	GtkWidget* _tmp25_;
+	GtkWidget* autosave_spinbutton;
+	GObject* _tmp26_ = NULL;
+	GtkLabel* _tmp27_;
+	GObject* _tmp28_ = NULL;
+	GObject* _tmp29_;
+	GObject* reopen_checkbutton;
+	GObject* _tmp30_ = NULL;
+	GtkButton* _tmp31_;
+	GObject* _tmp32_ = NULL;
+	GObject* _tmp33_;
+	GObject* font_button;
+	GObject* _tmp34_ = NULL;
+	GtkWidget* _tmp35_;
+	GtkWidget* font_hbox;
+	GObject* _tmp36_ = NULL;
+	GtkTreeView* _tmp37_;
+	GObject* _tmp38_ = NULL;
+	GObject* _tmp39_;
+	GObject* interactive_comp_checkbutton;
+	GObject* _tmp40_ = NULL;
+	GtkWidget* _tmp41_;
+	GtkWidget* interactive_comp_spinbutton;
+	GObject* _tmp42_ = NULL;
+	GtkLabel* _tmp43_;
+	GObject* _tmp44_ = NULL;
+	GObject* _tmp45_;
+	GObject* document_view_program;
+	GObject* _tmp46_ = NULL;
+	GObject* _tmp47_;
+	GObject* web_browser;
+	GObject* _tmp48_ = NULL;
+	GObject* _tmp49_;
+	GObject* nb_most_used_symbols;
+	GObject* _tmp50_ = NULL;
+	GtkTreeView* _tmp51_;
+	GObject* _tmp52_ = NULL;
+	GtkButton* _tmp53_;
+	GtkButton* bt_new;
+	GObject* _tmp54_ = NULL;
+	GtkButton* _tmp55_;
+	GtkButton* bt_delete;
+	GObject* _tmp56_ = NULL;
+	GtkButton* _tmp57_;
+	GtkButton* bt_up;
+	GObject* _tmp58_ = NULL;
+	GtkButton* _tmp59_;
+	GtkButton* bt_down;
+	GObject* _tmp60_ = NULL;
+	GtkButton* _tmp61_;
+	GtkButton* bt_properties;
+	GObject* _tmp62_ = NULL;
+	GtkButton* _tmp63_;
+	GtkButton* bt_reset;
+	GObject* _tmp64_ = NULL;
+	GObject* _tmp65_;
+	GObject* confirm_clean_up_checkbutton;
+	GObject* _tmp66_ = NULL;
+	GtkWidget* _tmp67_;
+	GtkWidget* auto_clean_up_checkbutton;
+	GObject* _tmp68_ = NULL;
+	GObject* _tmp69_;
+	GObject* clean_up_entry;
+	GObject* _tmp70_ = NULL;
+	GObject* _tmp71_;
+	GObject* file_browser_show_all;
+	GObject* _tmp72_ = NULL;
+	GtkWidget* _tmp73_;
+	GtkWidget* vbox_file_browser_show_all;
+	GObject* _tmp74_ = NULL;
+	GtkWidget* _tmp75_;
+	GtkWidget* file_browser_except;
+	GObject* _tmp76_ = NULL;
+	GtkWidget* _tmp77_;
+	GtkWidget* file_browser_show_hidden;
+	GObject* _tmp78_ = NULL;
+	GtkWidget* _tmp79_;
+	GtkWidget* file_browser_entry;
+	GSettings* _tmp80_ = NULL;
+	GSettings* _tmp81_ = NULL;
+	GSettings* latex_settings;
+	GSettings* _tmp82_ = NULL;
+	GSettings* fb_settings;
+	gchar* _tmp83_ = NULL;
+	gchar* current_scheme_id;
+	guint interval = 0U;
+	const gchar* _tmp84_ = NULL;
+	gint _tmp87_;
+	gint min_nb_chars;
+	const gchar* _tmp88_ = NULL;
+	AppSettings* _tmp91_ = NULL;
+	AppSettings* app_settings;
+	GtkWidget* _tmp92_ = NULL;
+	GtkBox* _tmp93_;
+	GtkBox* content_area;
 	GError * _inner_error_ = NULL;
-	self = g_object_newv (object_type, 0, NULL);
-	reset_button = g_object_ref_sink ((GtkButton*) gtk_button_new_with_label (_ ("Reset All")));
-	image = g_object_ref_sink ((GtkImage*) gtk_image_new_from_stock (GTK_STOCK_CLEAR, GTK_ICON_SIZE_MENU));
+	self = (PreferencesDialog*) g_object_new (object_type, NULL);
+	_tmp0_ = _ ("Reset All");
+	_tmp1_ = (GtkButton*) gtk_button_new_with_label (_tmp0_);
+	reset_button = g_object_ref_sink (_tmp1_);
+	_tmp2_ = (GtkImage*) gtk_image_new_from_stock (GTK_STOCK_CLEAR, GTK_ICON_SIZE_MENU);
+	image = g_object_ref_sink (_tmp2_);
 	gtk_button_set_image (reset_button, (GtkWidget*) image);
 	gtk_widget_show_all ((GtkWidget*) reset_button);
 	gtk_dialog_add_action_widget ((GtkDialog*) self, (GtkWidget*) reset_button, (gint) GTK_RESPONSE_APPLY);
 	gtk_dialog_add_button ((GtkDialog*) self, GTK_STOCK_CLOSE, (gint) GTK_RESPONSE_CLOSE);
-	gtk_window_set_title ((GtkWindow*) self, _ ("Preferences"));
+	_tmp3_ = _ ("Preferences");
+	gtk_window_set_title ((GtkWindow*) self, _tmp3_);
 	gtk_dialog_set_has_separator ((GtkDialog*) self, FALSE);
 	gtk_window_set_destroy_with_parent ((GtkWindow*) self, TRUE);
 	gtk_container_set_border_width ((GtkContainer*) self, (guint) 5);
 	g_signal_connect_object ((GtkDialog*) self, "response", (GCallback) __lambda0__gtk_dialog_response, self, 0);
-	path = g_build_filename (DATA_DIR, "ui", "preferences_dialog.ui", NULL);
-	{
-		Block1Data* _data1_;
-		GtkBuilder* builder;
-		GtkNotebook* notebook;
-		GObject* display_line_nb_checkbutton;
-		GObject* tab_width_spinbutton;
-		GtkWidget* insert_spaces_checkbutton;
-		GtkWidget* forget_no_tabs;
-		GObject* hl_current_line_checkbutton;
-		GObject* bracket_matching_checkbutton;
-		GObject* backup_checkbutton;
-		GObject* autosave_checkbutton;
-		GtkWidget* autosave_spinbutton;
-		GObject* reopen_checkbutton;
-		GObject* font_button;
-		GtkWidget* font_hbox;
-		GObject* interactive_comp_checkbutton;
-		GtkWidget* interactive_comp_spinbutton;
-		GObject* document_view_program;
-		GObject* web_browser;
-		GObject* nb_most_used_symbols;
-		GtkTreeView* _tmp0_;
-		GtkButton* bt_new;
-		GtkButton* bt_delete;
-		GtkButton* bt_up;
-		GtkButton* bt_down;
-		GtkButton* bt_properties;
-		GtkButton* bt_reset;
-		GObject* confirm_clean_up_checkbutton;
-		GtkWidget* auto_clean_up_checkbutton;
-		GObject* clean_up_entry;
-		GObject* file_browser_show_all;
-		GtkWidget* vbox_file_browser_show_all;
-		GtkWidget* file_browser_except;
-		GtkWidget* file_browser_show_hidden;
-		GtkWidget* file_browser_entry;
-		GSettings* latex_settings;
-		GSettings* fb_settings;
-		char* current_scheme_id;
-		guint interval = 0U;
-		const char* _tmp1_;
-		gint min_nb_chars;
-		const char* _tmp2_;
-		AppSettings* app_settings;
-		GtkBox* content_area;
-		_data1_ = g_slice_new0 (Block1Data);
-		_data1_->_ref_count_ = 1;
-		_data1_->self = g_object_ref (self);
-		builder = gtk_builder_new ();
-		gtk_builder_add_from_file (builder, path, &_inner_error_);
-		if (_inner_error_ != NULL) {
-			_g_object_unref0 (builder);
-			block1_data_unref (_data1_);
-			goto __catch0_g_error;
-		}
-		notebook = _g_object_ref0 (GTK_NOTEBOOK (gtk_builder_get_object (builder, "notebook")));
-		display_line_nb_checkbutton = _g_object_ref0 (gtk_builder_get_object (builder, "display_line_nb_checkbutton"));
-		tab_width_spinbutton = _g_object_ref0 (gtk_builder_get_object (builder, "tab_width_spinbutton"));
-		insert_spaces_checkbutton = _g_object_ref0 (GTK_WIDGET (gtk_builder_get_object (builder, "insert_spaces_checkbutton")));
-		forget_no_tabs = _g_object_ref0 (GTK_WIDGET (gtk_builder_get_object (builder, "forget_no_tabs")));
-		hl_current_line_checkbutton = _g_object_ref0 (gtk_builder_get_object (builder, "hl_current_line_checkbutton"));
-		bracket_matching_checkbutton = _g_object_ref0 (gtk_builder_get_object (builder, "bracket_matching_checkbutton"));
-		backup_checkbutton = _g_object_ref0 (gtk_builder_get_object (builder, "backup_checkbutton"));
-		autosave_checkbutton = _g_object_ref0 (gtk_builder_get_object (builder, "autosave_checkbutton"));
-		autosave_spinbutton = _g_object_ref0 (GTK_WIDGET (gtk_builder_get_object (builder, "autosave_spinbutton")));
-		_data1_->autosave_label = _g_object_ref0 (GTK_LABEL (gtk_builder_get_object (builder, "autosave_label")));
-		reopen_checkbutton = _g_object_ref0 (gtk_builder_get_object (builder, "reopen_checkbutton"));
-		_data1_->default_font_checkbutton = _g_object_ref0 (GTK_BUTTON (gtk_builder_get_object (builder, "default_font_checkbutton")));
-		font_button = _g_object_ref0 (gtk_builder_get_object (builder, "font_button"));
-		font_hbox = _g_object_ref0 (GTK_WIDGET (gtk_builder_get_object (builder, "font_hbox")));
-		_data1_->schemes_treeview = _g_object_ref0 (GTK_TREE_VIEW (gtk_builder_get_object (builder, "schemes_treeview")));
-		interactive_comp_checkbutton = _g_object_ref0 (gtk_builder_get_object (builder, "interactive_comp_checkbutton"));
-		interactive_comp_spinbutton = _g_object_ref0 (GTK_WIDGET (gtk_builder_get_object (builder, "interactive_comp_spinbutton")));
-		_data1_->interactive_comp_label = _g_object_ref0 (GTK_LABEL (gtk_builder_get_object (builder, "interactive_comp_label")));
-		document_view_program = _g_object_ref0 (gtk_builder_get_object (builder, "document_view_program"));
-		web_browser = _g_object_ref0 (gtk_builder_get_object (builder, "web_browser"));
-		nb_most_used_symbols = _g_object_ref0 (gtk_builder_get_object (builder, "nb_most_used_symbols"));
-		self->priv->build_tools_view = (_tmp0_ = _g_object_ref0 (GTK_TREE_VIEW (gtk_builder_get_object (builder, "build_tools_treeview"))), _g_object_unref0 (self->priv->build_tools_view), _tmp0_);
-		bt_new = _g_object_ref0 (GTK_BUTTON (gtk_builder_get_object (builder, "build_tool_new")));
-		bt_delete = _g_object_ref0 (GTK_BUTTON (gtk_builder_get_object (builder, "build_tool_delete")));
-		bt_up = _g_object_ref0 (GTK_BUTTON (gtk_builder_get_object (builder, "build_tool_up")));
-		bt_down = _g_object_ref0 (GTK_BUTTON (gtk_builder_get_object (builder, "build_tool_down")));
-		bt_properties = _g_object_ref0 (GTK_BUTTON (gtk_builder_get_object (builder, "build_tool_properties")));
-		bt_reset = _g_object_ref0 (GTK_BUTTON (gtk_builder_get_object (builder, "build_tool_reset")));
-		confirm_clean_up_checkbutton = _g_object_ref0 (gtk_builder_get_object (builder, "confirm_clean_up_checkbutton"));
-		auto_clean_up_checkbutton = _g_object_ref0 (GTK_WIDGET (gtk_builder_get_object (builder, "auto_clean_up_checkbutton")));
-		clean_up_entry = _g_object_ref0 (gtk_builder_get_object (builder, "clean_up_entry"));
-		file_browser_show_all = _g_object_ref0 (gtk_builder_get_object (builder, "file_browser_show_all"));
-		vbox_file_browser_show_all = _g_object_ref0 (GTK_WIDGET (gtk_builder_get_object (builder, "vbox_file_browser_show_all")));
-		file_browser_except = _g_object_ref0 (GTK_WIDGET (gtk_builder_get_object (builder, "file_browser_except")));
-		file_browser_show_hidden = _g_object_ref0 (GTK_WIDGET (gtk_builder_get_object (builder, "file_browser_show_hidden")));
-		file_browser_entry = _g_object_ref0 (GTK_WIDGET (gtk_builder_get_object (builder, "file_browser_entry")));
-		_data1_->settings = g_settings_new ("org.gnome.latexila.preferences.editor");
-		g_settings_bind (_data1_->settings, "use-default-font", _data1_->default_font_checkbutton, "active", G_SETTINGS_BIND_DEFAULT);
-		g_settings_bind (_data1_->settings, "editor-font", font_button, "font-name", G_SETTINGS_BIND_DEFAULT);
-		g_settings_bind (_data1_->settings, "tabs-size", tab_width_spinbutton, "value", G_SETTINGS_BIND_DEFAULT);
-		g_settings_bind (_data1_->settings, "insert-spaces", insert_spaces_checkbutton, "active", G_SETTINGS_BIND_DEFAULT);
-		g_settings_bind (_data1_->settings, "forget-no-tabs", forget_no_tabs, "active", G_SETTINGS_BIND_DEFAULT);
-		g_settings_bind (_data1_->settings, "display-line-numbers", display_line_nb_checkbutton, "active", G_SETTINGS_BIND_DEFAULT);
-		g_settings_bind (_data1_->settings, "highlight-current-line", hl_current_line_checkbutton, "active", G_SETTINGS_BIND_DEFAULT);
-		g_settings_bind (_data1_->settings, "bracket-matching", bracket_matching_checkbutton, "active", G_SETTINGS_BIND_DEFAULT);
-		g_settings_bind (_data1_->settings, "create-backup-copy", backup_checkbutton, "active", G_SETTINGS_BIND_DEFAULT);
-		g_settings_bind (_data1_->settings, "auto-save", autosave_checkbutton, "active", G_SETTINGS_BIND_DEFAULT);
-		g_settings_bind (_data1_->settings, "auto-save-interval", autosave_spinbutton, "value", G_SETTINGS_BIND_DEFAULT);
-		g_settings_bind (_data1_->settings, "reopen-files", reopen_checkbutton, "active", G_SETTINGS_BIND_DEFAULT);
-		g_settings_bind (_data1_->settings, "web-browser", web_browser, "text", G_SETTINGS_BIND_DEFAULT);
-		g_settings_bind (_data1_->settings, "nb-most-used-symbols", nb_most_used_symbols, "value", G_SETTINGS_BIND_DEFAULT);
-		latex_settings = g_settings_new ("org.gnome.latexila.preferences.latex");
-		g_settings_bind (latex_settings, "interactive-completion", interactive_comp_checkbutton, "active", G_SETTINGS_BIND_DEFAULT);
-		g_settings_bind (latex_settings, "interactive-completion-num", interactive_comp_spinbutton, "value", G_SETTINGS_BIND_DEFAULT);
-		g_settings_bind (latex_settings, "document-view-program", document_view_program, "text", G_SETTINGS_BIND_DEFAULT);
-		g_settings_bind (latex_settings, "no-confirm-clean", confirm_clean_up_checkbutton, "active", G_SETTINGS_BIND_DEFAULT);
-		g_settings_bind (latex_settings, "automatic-clean", auto_clean_up_checkbutton, "active", G_SETTINGS_BIND_DEFAULT);
-		g_settings_bind (latex_settings, "clean-extensions", clean_up_entry, "text", G_SETTINGS_BIND_DEFAULT);
-		fb_settings = g_settings_new ("org.gnome.latexila.preferences.file-browser");
-		g_settings_bind (fb_settings, "show-all-files", file_browser_show_all, "active", G_SETTINGS_BIND_DEFAULT);
-		g_settings_bind (fb_settings, "show-all-files-except", file_browser_except, "active", G_SETTINGS_BIND_DEFAULT);
-		g_settings_bind (fb_settings, "show-hidden-files", file_browser_show_hidden, "active", G_SETTINGS_BIND_DEFAULT);
-		g_settings_bind (fb_settings, "file-extensions", file_browser_entry, "text", G_SETTINGS_BIND_DEFAULT);
-		current_scheme_id = g_settings_get_string (_data1_->settings, "scheme");
-		preferences_dialog_init_schemes_treeview (self, _data1_->schemes_treeview, current_scheme_id);
-		g_signal_connect_data (_data1_->schemes_treeview, "cursor-changed", (GCallback) __lambda1__gtk_tree_view_cursor_changed, block1_data_ref (_data1_), (GClosureNotify) block1_data_unref, 0);
-		g_signal_connect_data (_data1_->settings, "changed::scheme", (GCallback) __lambda2__g_settings_changed, block1_data_ref (_data1_), (GClosureNotify) block1_data_unref, 0);
-		preferences_dialog_set_sensitivity (self, _data1_->settings, "insert-spaces", forget_no_tabs, TRUE);
-		preferences_dialog_set_sensitivity (self, _data1_->settings, "auto-save", autosave_spinbutton, TRUE);
-		g_settings_get (_data1_->settings, "auto-save-interval", "u", &interval);
-		_tmp1_ = NULL;
-		if (interval > 1) {
-			_tmp1_ = _ ("minutes");
-		} else {
-			_tmp1_ = _ ("minute");
-		}
-		gtk_label_set_label (_data1_->autosave_label, _tmp1_);
-		g_signal_connect_data (_data1_->settings, "changed::auto-save-interval", (GCallback) __lambda4__g_settings_changed, block1_data_ref (_data1_), (GClosureNotify) block1_data_unref, 0);
-		preferences_dialog_set_sensitivity (self, latex_settings, "interactive-completion", interactive_comp_spinbutton, TRUE);
-		min_nb_chars = g_settings_get_int (latex_settings, "interactive-completion-num");
-		_tmp2_ = NULL;
-		if (min_nb_chars > 1) {
-			_tmp2_ = _ ("characters");
-		} else {
-			_tmp2_ = _ ("character");
-		}
-		gtk_label_set_label (_data1_->interactive_comp_label, _tmp2_);
-		g_signal_connect_data (latex_settings, "changed::interactive-completion-num", (GCallback) __lambda5__g_settings_changed, block1_data_ref (_data1_), (GClosureNotify) block1_data_unref, 0);
-		preferences_dialog_set_sensitivity (self, _data1_->settings, "use-default-font", font_hbox, FALSE);
-		preferences_dialog_set_system_font_label (self, _data1_->default_font_checkbutton);
-		app_settings = app_settings_get_default ();
-		g_signal_connect_data ((GObject*) app_settings, "notify::system-font", (GCallback) __lambda93__g_object_notify, block1_data_ref (_data1_), (GClosureNotify) block1_data_unref, 0);
-		preferences_dialog_set_sensitivity (self, latex_settings, "no-confirm-clean", auto_clean_up_checkbutton, TRUE);
-		preferences_dialog_set_sensitivity (self, fb_settings, "show-all-files", vbox_file_browser_show_all, TRUE);
-		preferences_dialog_set_sensitivity (self, fb_settings, "show-all-files", file_browser_entry, FALSE);
-		preferences_dialog_init_build_tools_treeview (self);
-		preferences_dialog_init_build_tools_buttons (self, bt_new, bt_delete, bt_up, bt_down, bt_properties, bt_reset);
-		content_area = _g_object_ref0 (GTK_BOX (gtk_dialog_get_content_area ((GtkDialog*) self)));
-		gtk_box_pack_start (content_area, (GtkWidget*) notebook, TRUE, TRUE, (guint) 0);
-		gtk_container_set_border_width ((GtkContainer*) notebook, (guint) 5);
-		_g_object_unref0 (content_area);
-		_g_object_unref0 (app_settings);
-		_g_free0 (current_scheme_id);
-		_g_object_unref0 (fb_settings);
-		_g_object_unref0 (latex_settings);
-		_g_object_unref0 (file_browser_entry);
-		_g_object_unref0 (file_browser_show_hidden);
-		_g_object_unref0 (file_browser_except);
-		_g_object_unref0 (vbox_file_browser_show_all);
-		_g_object_unref0 (file_browser_show_all);
-		_g_object_unref0 (clean_up_entry);
-		_g_object_unref0 (auto_clean_up_checkbutton);
-		_g_object_unref0 (confirm_clean_up_checkbutton);
-		_g_object_unref0 (bt_reset);
-		_g_object_unref0 (bt_properties);
-		_g_object_unref0 (bt_down);
-		_g_object_unref0 (bt_up);
-		_g_object_unref0 (bt_delete);
-		_g_object_unref0 (bt_new);
-		_g_object_unref0 (nb_most_used_symbols);
-		_g_object_unref0 (web_browser);
-		_g_object_unref0 (document_view_program);
-		_g_object_unref0 (interactive_comp_spinbutton);
-		_g_object_unref0 (interactive_comp_checkbutton);
-		_g_object_unref0 (font_hbox);
-		_g_object_unref0 (font_button);
-		_g_object_unref0 (reopen_checkbutton);
-		_g_object_unref0 (autosave_spinbutton);
-		_g_object_unref0 (autosave_checkbutton);
-		_g_object_unref0 (backup_checkbutton);
-		_g_object_unref0 (bracket_matching_checkbutton);
-		_g_object_unref0 (hl_current_line_checkbutton);
-		_g_object_unref0 (forget_no_tabs);
-		_g_object_unref0 (insert_spaces_checkbutton);
-		_g_object_unref0 (tab_width_spinbutton);
-		_g_object_unref0 (display_line_nb_checkbutton);
-		_g_object_unref0 (notebook);
+	_tmp4_ = g_build_filename (DATA_DIR, "ui", "preferences_dialog.ui", NULL);
+	path = _tmp4_;
+	_data1_ = g_slice_new0 (Block1Data);
+	_data1_->_ref_count_ = 1;
+	_data1_->self = g_object_ref (self);
+	_tmp5_ = gtk_builder_new ();
+	builder = _tmp5_;
+	gtk_builder_add_from_file (builder, path, &_inner_error_);
+	if (_inner_error_ != NULL) {
 		_g_object_unref0 (builder);
 		block1_data_unref (_data1_);
+		_data1_ = NULL;
+		goto __catch0_g_error;
+	}
+	_tmp6_ = gtk_builder_get_object (builder, "notebook");
+	_tmp7_ = _g_object_ref0 (GTK_NOTEBOOK (_tmp6_));
+	notebook = _tmp7_;
+	_tmp8_ = gtk_builder_get_object (builder, "display_line_nb_checkbutton");
+	_tmp9_ = _g_object_ref0 (_tmp8_);
+	display_line_nb_checkbutton = _tmp9_;
+	_tmp10_ = gtk_builder_get_object (builder, "tab_width_spinbutton");
+	_tmp11_ = _g_object_ref0 (_tmp10_);
+	tab_width_spinbutton = _tmp11_;
+	_tmp12_ = gtk_builder_get_object (builder, "insert_spaces_checkbutton");
+	_tmp13_ = _g_object_ref0 (GTK_WIDGET (_tmp12_));
+	insert_spaces_checkbutton = _tmp13_;
+	_tmp14_ = gtk_builder_get_object (builder, "forget_no_tabs");
+	_tmp15_ = _g_object_ref0 (GTK_WIDGET (_tmp14_));
+	forget_no_tabs = _tmp15_;
+	_tmp16_ = gtk_builder_get_object (builder, "hl_current_line_checkbutton");
+	_tmp17_ = _g_object_ref0 (_tmp16_);
+	hl_current_line_checkbutton = _tmp17_;
+	_tmp18_ = gtk_builder_get_object (builder, "bracket_matching_checkbutton");
+	_tmp19_ = _g_object_ref0 (_tmp18_);
+	bracket_matching_checkbutton = _tmp19_;
+	_tmp20_ = gtk_builder_get_object (builder, "backup_checkbutton");
+	_tmp21_ = _g_object_ref0 (_tmp20_);
+	backup_checkbutton = _tmp21_;
+	_tmp22_ = gtk_builder_get_object (builder, "autosave_checkbutton");
+	_tmp23_ = _g_object_ref0 (_tmp22_);
+	autosave_checkbutton = _tmp23_;
+	_tmp24_ = gtk_builder_get_object (builder, "autosave_spinbutton");
+	_tmp25_ = _g_object_ref0 (GTK_WIDGET (_tmp24_));
+	autosave_spinbutton = _tmp25_;
+	_tmp26_ = gtk_builder_get_object (builder, "autosave_label");
+	_tmp27_ = _g_object_ref0 (GTK_LABEL (_tmp26_));
+	_data1_->autosave_label = _tmp27_;
+	_tmp28_ = gtk_builder_get_object (builder, "reopen_checkbutton");
+	_tmp29_ = _g_object_ref0 (_tmp28_);
+	reopen_checkbutton = _tmp29_;
+	_tmp30_ = gtk_builder_get_object (builder, "default_font_checkbutton");
+	_tmp31_ = _g_object_ref0 (GTK_BUTTON (_tmp30_));
+	_data1_->default_font_checkbutton = _tmp31_;
+	_tmp32_ = gtk_builder_get_object (builder, "font_button");
+	_tmp33_ = _g_object_ref0 (_tmp32_);
+	font_button = _tmp33_;
+	_tmp34_ = gtk_builder_get_object (builder, "font_hbox");
+	_tmp35_ = _g_object_ref0 (GTK_WIDGET (_tmp34_));
+	font_hbox = _tmp35_;
+	_tmp36_ = gtk_builder_get_object (builder, "schemes_treeview");
+	_tmp37_ = _g_object_ref0 (GTK_TREE_VIEW (_tmp36_));
+	_data1_->schemes_treeview = _tmp37_;
+	_tmp38_ = gtk_builder_get_object (builder, "interactive_comp_checkbutton");
+	_tmp39_ = _g_object_ref0 (_tmp38_);
+	interactive_comp_checkbutton = _tmp39_;
+	_tmp40_ = gtk_builder_get_object (builder, "interactive_comp_spinbutton");
+	_tmp41_ = _g_object_ref0 (GTK_WIDGET (_tmp40_));
+	interactive_comp_spinbutton = _tmp41_;
+	_tmp42_ = gtk_builder_get_object (builder, "interactive_comp_label");
+	_tmp43_ = _g_object_ref0 (GTK_LABEL (_tmp42_));
+	_data1_->interactive_comp_label = _tmp43_;
+	_tmp44_ = gtk_builder_get_object (builder, "document_view_program");
+	_tmp45_ = _g_object_ref0 (_tmp44_);
+	document_view_program = _tmp45_;
+	_tmp46_ = gtk_builder_get_object (builder, "web_browser");
+	_tmp47_ = _g_object_ref0 (_tmp46_);
+	web_browser = _tmp47_;
+	_tmp48_ = gtk_builder_get_object (builder, "nb_most_used_symbols");
+	_tmp49_ = _g_object_ref0 (_tmp48_);
+	nb_most_used_symbols = _tmp49_;
+	_tmp50_ = gtk_builder_get_object (builder, "build_tools_treeview");
+	_tmp51_ = _g_object_ref0 (GTK_TREE_VIEW (_tmp50_));
+	_g_object_unref0 (self->priv->build_tools_view);
+	self->priv->build_tools_view = _tmp51_;
+	_tmp52_ = gtk_builder_get_object (builder, "build_tool_new");
+	_tmp53_ = _g_object_ref0 (GTK_BUTTON (_tmp52_));
+	bt_new = _tmp53_;
+	_tmp54_ = gtk_builder_get_object (builder, "build_tool_delete");
+	_tmp55_ = _g_object_ref0 (GTK_BUTTON (_tmp54_));
+	bt_delete = _tmp55_;
+	_tmp56_ = gtk_builder_get_object (builder, "build_tool_up");
+	_tmp57_ = _g_object_ref0 (GTK_BUTTON (_tmp56_));
+	bt_up = _tmp57_;
+	_tmp58_ = gtk_builder_get_object (builder, "build_tool_down");
+	_tmp59_ = _g_object_ref0 (GTK_BUTTON (_tmp58_));
+	bt_down = _tmp59_;
+	_tmp60_ = gtk_builder_get_object (builder, "build_tool_properties");
+	_tmp61_ = _g_object_ref0 (GTK_BUTTON (_tmp60_));
+	bt_properties = _tmp61_;
+	_tmp62_ = gtk_builder_get_object (builder, "build_tool_reset");
+	_tmp63_ = _g_object_ref0 (GTK_BUTTON (_tmp62_));
+	bt_reset = _tmp63_;
+	_tmp64_ = gtk_builder_get_object (builder, "confirm_clean_up_checkbutton");
+	_tmp65_ = _g_object_ref0 (_tmp64_);
+	confirm_clean_up_checkbutton = _tmp65_;
+	_tmp66_ = gtk_builder_get_object (builder, "auto_clean_up_checkbutton");
+	_tmp67_ = _g_object_ref0 (GTK_WIDGET (_tmp66_));
+	auto_clean_up_checkbutton = _tmp67_;
+	_tmp68_ = gtk_builder_get_object (builder, "clean_up_entry");
+	_tmp69_ = _g_object_ref0 (_tmp68_);
+	clean_up_entry = _tmp69_;
+	_tmp70_ = gtk_builder_get_object (builder, "file_browser_show_all");
+	_tmp71_ = _g_object_ref0 (_tmp70_);
+	file_browser_show_all = _tmp71_;
+	_tmp72_ = gtk_builder_get_object (builder, "vbox_file_browser_show_all");
+	_tmp73_ = _g_object_ref0 (GTK_WIDGET (_tmp72_));
+	vbox_file_browser_show_all = _tmp73_;
+	_tmp74_ = gtk_builder_get_object (builder, "file_browser_except");
+	_tmp75_ = _g_object_ref0 (GTK_WIDGET (_tmp74_));
+	file_browser_except = _tmp75_;
+	_tmp76_ = gtk_builder_get_object (builder, "file_browser_show_hidden");
+	_tmp77_ = _g_object_ref0 (GTK_WIDGET (_tmp76_));
+	file_browser_show_hidden = _tmp77_;
+	_tmp78_ = gtk_builder_get_object (builder, "file_browser_entry");
+	_tmp79_ = _g_object_ref0 (GTK_WIDGET (_tmp78_));
+	file_browser_entry = _tmp79_;
+	_tmp80_ = g_settings_new ("org.gnome.latexila.preferences.editor");
+	_data1_->settings = _tmp80_;
+	g_settings_bind (_data1_->settings, "use-default-font", _data1_->default_font_checkbutton, "active", G_SETTINGS_BIND_DEFAULT);
+	g_settings_bind (_data1_->settings, "editor-font", font_button, "font-name", G_SETTINGS_BIND_DEFAULT);
+	g_settings_bind (_data1_->settings, "tabs-size", tab_width_spinbutton, "value", G_SETTINGS_BIND_DEFAULT);
+	g_settings_bind (_data1_->settings, "insert-spaces", insert_spaces_checkbutton, "active", G_SETTINGS_BIND_DEFAULT);
+	g_settings_bind (_data1_->settings, "forget-no-tabs", forget_no_tabs, "active", G_SETTINGS_BIND_DEFAULT);
+	g_settings_bind (_data1_->settings, "display-line-numbers", display_line_nb_checkbutton, "active", G_SETTINGS_BIND_DEFAULT);
+	g_settings_bind (_data1_->settings, "highlight-current-line", hl_current_line_checkbutton, "active", G_SETTINGS_BIND_DEFAULT);
+	g_settings_bind (_data1_->settings, "bracket-matching", bracket_matching_checkbutton, "active", G_SETTINGS_BIND_DEFAULT);
+	g_settings_bind (_data1_->settings, "create-backup-copy", backup_checkbutton, "active", G_SETTINGS_BIND_DEFAULT);
+	g_settings_bind (_data1_->settings, "auto-save", autosave_checkbutton, "active", G_SETTINGS_BIND_DEFAULT);
+	g_settings_bind (_data1_->settings, "auto-save-interval", autosave_spinbutton, "value", G_SETTINGS_BIND_DEFAULT);
+	g_settings_bind (_data1_->settings, "reopen-files", reopen_checkbutton, "active", G_SETTINGS_BIND_DEFAULT);
+	g_settings_bind (_data1_->settings, "web-browser", web_browser, "text", G_SETTINGS_BIND_DEFAULT);
+	g_settings_bind (_data1_->settings, "nb-most-used-symbols", nb_most_used_symbols, "value", G_SETTINGS_BIND_DEFAULT);
+	_tmp81_ = g_settings_new ("org.gnome.latexila.preferences.latex");
+	latex_settings = _tmp81_;
+	g_settings_bind (latex_settings, "interactive-completion", interactive_comp_checkbutton, "active", G_SETTINGS_BIND_DEFAULT);
+	g_settings_bind (latex_settings, "interactive-completion-num", interactive_comp_spinbutton, "value", G_SETTINGS_BIND_DEFAULT);
+	g_settings_bind (latex_settings, "document-view-program", document_view_program, "text", G_SETTINGS_BIND_DEFAULT);
+	g_settings_bind (latex_settings, "no-confirm-clean", confirm_clean_up_checkbutton, "active", G_SETTINGS_BIND_DEFAULT);
+	g_settings_bind (latex_settings, "automatic-clean", auto_clean_up_checkbutton, "active", G_SETTINGS_BIND_DEFAULT);
+	g_settings_bind (latex_settings, "clean-extensions", clean_up_entry, "text", G_SETTINGS_BIND_DEFAULT);
+	_tmp82_ = g_settings_new ("org.gnome.latexila.preferences.file-browser");
+	fb_settings = _tmp82_;
+	g_settings_bind (fb_settings, "show-all-files", file_browser_show_all, "active", G_SETTINGS_BIND_DEFAULT);
+	g_settings_bind (fb_settings, "show-all-files-except", file_browser_except, "active", G_SETTINGS_BIND_DEFAULT);
+	g_settings_bind (fb_settings, "show-hidden-files", file_browser_show_hidden, "active", G_SETTINGS_BIND_DEFAULT);
+	g_settings_bind (fb_settings, "file-extensions", file_browser_entry, "text", G_SETTINGS_BIND_DEFAULT);
+	_tmp83_ = g_settings_get_string (_data1_->settings, "scheme");
+	current_scheme_id = _tmp83_;
+	preferences_dialog_init_schemes_treeview (self, _data1_->schemes_treeview, current_scheme_id);
+	g_signal_connect_data (_data1_->schemes_treeview, "cursor-changed", (GCallback) __lambda1__gtk_tree_view_cursor_changed, block1_data_ref (_data1_), (GClosureNotify) block1_data_unref, 0);
+	g_signal_connect_data (_data1_->settings, "changed::scheme", (GCallback) __lambda2__g_settings_changed, block1_data_ref (_data1_), (GClosureNotify) block1_data_unref, 0);
+	preferences_dialog_set_sensitivity (self, _data1_->settings, "insert-spaces", forget_no_tabs, TRUE);
+	preferences_dialog_set_sensitivity (self, _data1_->settings, "auto-save", autosave_spinbutton, TRUE);
+	g_settings_get (_data1_->settings, "auto-save-interval", "u", &interval);
+	if (interval > 1) {
+		const gchar* _tmp85_ = NULL;
+		_tmp85_ = _ ("minutes");
+		_tmp84_ = _tmp85_;
+	} else {
+		const gchar* _tmp86_ = NULL;
+		_tmp86_ = _ ("minute");
+		_tmp84_ = _tmp86_;
+	}
+	gtk_label_set_label (_data1_->autosave_label, _tmp84_);
+	g_signal_connect_data (_data1_->settings, "changed::auto-save-interval", (GCallback) __lambda4__g_settings_changed, block1_data_ref (_data1_), (GClosureNotify) block1_data_unref, 0);
+	preferences_dialog_set_sensitivity (self, latex_settings, "interactive-completion", interactive_comp_spinbutton, TRUE);
+	_tmp87_ = g_settings_get_int (latex_settings, "interactive-completion-num");
+	min_nb_chars = _tmp87_;
+	if (min_nb_chars > 1) {
+		const gchar* _tmp89_ = NULL;
+		_tmp89_ = _ ("characters");
+		_tmp88_ = _tmp89_;
+	} else {
+		const gchar* _tmp90_ = NULL;
+		_tmp90_ = _ ("character");
+		_tmp88_ = _tmp90_;
 	}
+	gtk_label_set_label (_data1_->interactive_comp_label, _tmp88_);
+	g_signal_connect_data (latex_settings, "changed::interactive-completion-num", (GCallback) __lambda5__g_settings_changed, block1_data_ref (_data1_), (GClosureNotify) block1_data_unref, 0);
+	preferences_dialog_set_sensitivity (self, _data1_->settings, "use-default-font", font_hbox, FALSE);
+	preferences_dialog_set_system_font_label (self, _data1_->default_font_checkbutton);
+	_tmp91_ = app_settings_get_default ();
+	app_settings = _tmp91_;
+	g_signal_connect_data ((GObject*) app_settings, "notify::system-font", (GCallback) __lambda96__g_object_notify, block1_data_ref (_data1_), (GClosureNotify) block1_data_unref, 0);
+	preferences_dialog_set_sensitivity (self, latex_settings, "no-confirm-clean", auto_clean_up_checkbutton, TRUE);
+	preferences_dialog_set_sensitivity (self, fb_settings, "show-all-files", vbox_file_browser_show_all, TRUE);
+	preferences_dialog_set_sensitivity (self, fb_settings, "show-all-files", file_browser_entry, FALSE);
+	preferences_dialog_init_build_tools_treeview (self);
+	preferences_dialog_init_build_tools_buttons (self, bt_new, bt_delete, bt_up, bt_down, bt_properties, bt_reset);
+	_tmp92_ = gtk_dialog_get_content_area ((GtkDialog*) self);
+	_tmp93_ = _g_object_ref0 (GTK_BOX (_tmp92_));
+	content_area = _tmp93_;
+	gtk_box_pack_start (content_area, (GtkWidget*) notebook, TRUE, TRUE, (guint) 0);
+	gtk_container_set_border_width ((GtkContainer*) notebook, (guint) 5);
+	_g_object_unref0 (content_area);
+	_g_object_unref0 (app_settings);
+	_g_free0 (current_scheme_id);
+	_g_object_unref0 (fb_settings);
+	_g_object_unref0 (latex_settings);
+	_g_object_unref0 (file_browser_entry);
+	_g_object_unref0 (file_browser_show_hidden);
+	_g_object_unref0 (file_browser_except);
+	_g_object_unref0 (vbox_file_browser_show_all);
+	_g_object_unref0 (file_browser_show_all);
+	_g_object_unref0 (clean_up_entry);
+	_g_object_unref0 (auto_clean_up_checkbutton);
+	_g_object_unref0 (confirm_clean_up_checkbutton);
+	_g_object_unref0 (bt_reset);
+	_g_object_unref0 (bt_properties);
+	_g_object_unref0 (bt_down);
+	_g_object_unref0 (bt_up);
+	_g_object_unref0 (bt_delete);
+	_g_object_unref0 (bt_new);
+	_g_object_unref0 (nb_most_used_symbols);
+	_g_object_unref0 (web_browser);
+	_g_object_unref0 (document_view_program);
+	_g_object_unref0 (interactive_comp_spinbutton);
+	_g_object_unref0 (interactive_comp_checkbutton);
+	_g_object_unref0 (font_hbox);
+	_g_object_unref0 (font_button);
+	_g_object_unref0 (reopen_checkbutton);
+	_g_object_unref0 (autosave_spinbutton);
+	_g_object_unref0 (autosave_checkbutton);
+	_g_object_unref0 (backup_checkbutton);
+	_g_object_unref0 (bracket_matching_checkbutton);
+	_g_object_unref0 (hl_current_line_checkbutton);
+	_g_object_unref0 (forget_no_tabs);
+	_g_object_unref0 (insert_spaces_checkbutton);
+	_g_object_unref0 (tab_width_spinbutton);
+	_g_object_unref0 (display_line_nb_checkbutton);
+	_g_object_unref0 (notebook);
+	_g_object_unref0 (builder);
+	block1_data_unref (_data1_);
+	_data1_ = NULL;
 	goto __finally0;
 	__catch0_g_error:
 	{
 		GError * e;
+		gchar* _tmp94_ = NULL;
+		gchar* message;
+		GtkLabel* _tmp95_ = NULL;
+		GtkLabel* label_error;
+		GtkWidget* _tmp96_ = NULL;
+		GtkBox* _tmp97_;
+		GtkBox* content_area;
 		e = _inner_error_;
 		_inner_error_ = NULL;
-		{
-			char* message;
-			GtkLabel* label_error;
-			GtkBox* content_area;
-			message = g_strdup_printf ("Error: %s", e->message);
-			fprintf (stderr, "%s\n", message);
-			label_error = g_object_ref_sink ((GtkLabel*) gtk_label_new (message));
-			gtk_label_set_line_wrap (label_error, TRUE);
-			content_area = _g_object_ref0 (GTK_BOX (gtk_dialog_get_content_area ((GtkDialog*) self)));
-			gtk_box_pack_start (content_area, (GtkWidget*) label_error, TRUE, TRUE, (guint) 0);
-			gtk_widget_show_all ((GtkWidget*) content_area);
-			_g_object_unref0 (content_area);
-			_g_object_unref0 (label_error);
-			_g_free0 (message);
-			_g_error_free0 (e);
-		}
+		_tmp94_ = g_strdup_printf ("Error: %s", e->message);
+		message = _tmp94_;
+		fprintf (stderr, "%s\n", message);
+		_tmp95_ = (GtkLabel*) gtk_label_new (message);
+		label_error = g_object_ref_sink (_tmp95_);
+		gtk_label_set_line_wrap (label_error, TRUE);
+		_tmp96_ = gtk_dialog_get_content_area ((GtkDialog*) self);
+		_tmp97_ = _g_object_ref0 (GTK_BOX (_tmp96_));
+		content_area = _tmp97_;
+		gtk_box_pack_start (content_area, (GtkWidget*) label_error, TRUE, TRUE, (guint) 0);
+		gtk_widget_show_all ((GtkWidget*) content_area);
+		_g_object_unref0 (content_area);
+		_g_object_unref0 (label_error);
+		_g_free0 (message);
+		_g_error_free0 (e);
 	}
 	__finally0:
 	if (_inner_error_ != NULL) {
@@ -733,28 +972,6 @@ static PreferencesDialog* preferences_dialog_new (void) {
 }
 
 
-static void _lambda3_ (GSettings* setting, const char* k, Block2Data* _data2_) {
-	PreferencesDialog * self;
-	gboolean v;
-	gboolean _tmp0_ = FALSE;
-	self = _data2_->self;
-	g_return_if_fail (setting != NULL);
-	g_return_if_fail (k != NULL);
-	v = g_settings_get_boolean (setting, k);
-	if (_data2_->must_be_enabled) {
-		_tmp0_ = v;
-	} else {
-		_tmp0_ = !v;
-	}
-	gtk_widget_set_sensitive (_data2_->widget, _tmp0_);
-}
-
-
-static void __lambda3__g_settings_changed (GSettings* _sender, const char* key, gpointer self) {
-	_lambda3_ (_sender, key, self);
-}
-
-
 static Block2Data* block2_data_ref (Block2Data* _data2_) {
 	g_atomic_int_inc (&_data2_->_ref_count_);
 	return _data2_;
@@ -770,12 +987,36 @@ static void block2_data_unref (Block2Data* _data2_) {
 }
 
 
-static void preferences_dialog_set_sensitivity (PreferencesDialog* self, GSettings* settings, const char* key, GtkWidget* widget, gboolean must_be_enabled) {
+static void _lambda3_ (GSettings* setting, const gchar* k, Block2Data* _data2_) {
+	PreferencesDialog * self;
+	gboolean _tmp0_;
+	gboolean v;
+	gboolean _tmp1_ = FALSE;
+	self = _data2_->self;
+	g_return_if_fail (setting != NULL);
+	g_return_if_fail (k != NULL);
+	_tmp0_ = g_settings_get_boolean (setting, k);
+	v = _tmp0_;
+	if (_data2_->must_be_enabled) {
+		_tmp1_ = v;
+	} else {
+		_tmp1_ = !v;
+	}
+	gtk_widget_set_sensitive (_data2_->widget, _tmp1_);
+}
+
+
+static void __lambda3__g_settings_changed (GSettings* _sender, const gchar* key, gpointer self) {
+	_lambda3_ (_sender, key, self);
+}
+
+
+static void preferences_dialog_set_sensitivity (PreferencesDialog* self, GSettings* settings, const gchar* key, GtkWidget* widget, gboolean must_be_enabled) {
 	Block2Data* _data2_;
+	gboolean _tmp0_;
 	gboolean val;
-	gboolean _tmp0_ = FALSE;
-	char* _tmp2_ = NULL;
-	char* _tmp1_ = NULL;
+	gboolean _tmp1_ = FALSE;
+	gchar* _tmp2_ = NULL;
 	g_return_if_fail (self != NULL);
 	g_return_if_fail (settings != NULL);
 	g_return_if_fail (key != NULL);
@@ -785,97 +1026,143 @@ static void preferences_dialog_set_sensitivity (PreferencesDialog* self, GSettin
 	_data2_->self = g_object_ref (self);
 	_data2_->widget = _g_object_ref0 (widget);
 	_data2_->must_be_enabled = must_be_enabled;
-	val = g_settings_get_boolean (settings, key);
+	_tmp0_ = g_settings_get_boolean (settings, key);
+	val = _tmp0_;
 	if (_data2_->must_be_enabled) {
-		_tmp0_ = val;
+		_tmp1_ = val;
 	} else {
-		_tmp0_ = !val;
+		_tmp1_ = !val;
 	}
-	gtk_widget_set_sensitive (_data2_->widget, _tmp0_);
-	g_signal_connect_data (settings, (_tmp2_ = g_strconcat ("changed::", key, NULL), _tmp2_), (GCallback) __lambda3__g_settings_changed, block2_data_ref (_data2_), (GClosureNotify) block2_data_unref, 0);
+	gtk_widget_set_sensitive (_data2_->widget, _tmp1_);
+	_tmp2_ = g_strconcat ("changed::", key, NULL);
+	g_signal_connect_data (settings, _tmp2_, (GCallback) __lambda3__g_settings_changed, block2_data_ref (_data2_), (GClosureNotify) block2_data_unref, 0);
 	_g_free0 (_tmp2_);
-	_g_free0 (_tmp1_);
 	block2_data_unref (_data2_);
+	_data2_ = NULL;
 }
 
 
 static void preferences_dialog_set_system_font_label (PreferencesDialog* self, GtkButton* button) {
+	AppSettings* _tmp0_ = NULL;
 	AppSettings* app_settings;
-	char* label;
+	const gchar* _tmp1_ = NULL;
+	const gchar* _tmp2_ = NULL;
+	gchar* _tmp3_ = NULL;
+	gchar* label;
 	g_return_if_fail (self != NULL);
 	g_return_if_fail (button != NULL);
-	app_settings = app_settings_get_default ();
-	label = g_strdup_printf (_ ("Use the system fixed width font (%s)"), app_settings_get_system_font (app_settings));
+	_tmp0_ = app_settings_get_default ();
+	app_settings = _tmp0_;
+	_tmp1_ = _ ("Use the system fixed width font (%s)");
+	_tmp2_ = app_settings_get_system_font (app_settings);
+	_tmp3_ = g_strdup_printf (_tmp1_, _tmp2_);
+	label = _tmp3_;
 	gtk_button_set_label (button, label);
 	_g_free0 (label);
 	_g_object_unref0 (app_settings);
 }
 
 
-static void _lambda64_ (void) {
+static void _lambda67_ (void) {
 	if (preferences_dialog_preferences_dialog != NULL) {
-		PreferencesDialog* _tmp0_;
-		preferences_dialog_preferences_dialog = (_tmp0_ = NULL, _g_object_unref0 (preferences_dialog_preferences_dialog), _tmp0_);
+		_g_object_unref0 (preferences_dialog_preferences_dialog);
+		preferences_dialog_preferences_dialog = NULL;
 	}
 }
 
 
-static void __lambda64__gtk_object_destroy (GtkObject* _sender, gpointer self) {
-	_lambda64_ ();
+static void __lambda67__gtk_object_destroy (GtkObject* _sender, gpointer self) {
+	_lambda67_ ();
 }
 
 
 void preferences_dialog_show_me (MainWindow* parent) {
+	GtkWindow* _tmp1_ = NULL;
 	g_return_if_fail (parent != NULL);
 	if (preferences_dialog_preferences_dialog == NULL) {
-		PreferencesDialog* _tmp0_;
-		preferences_dialog_preferences_dialog = (_tmp0_ = g_object_ref_sink (preferences_dialog_new ()), _g_object_unref0 (preferences_dialog_preferences_dialog), _tmp0_);
-		g_signal_connect ((GtkObject*) preferences_dialog_preferences_dialog, "destroy", (GCallback) __lambda64__gtk_object_destroy, NULL);
+		PreferencesDialog* _tmp0_ = NULL;
+		_tmp0_ = preferences_dialog_new ();
+		_g_object_unref0 (preferences_dialog_preferences_dialog);
+		preferences_dialog_preferences_dialog = g_object_ref_sink (_tmp0_);
+		g_signal_connect ((GtkObject*) preferences_dialog_preferences_dialog, "destroy", (GCallback) __lambda67__gtk_object_destroy, NULL);
 	}
-	if (GTK_WINDOW (parent) != gtk_window_get_transient_for ((GtkWindow*) preferences_dialog_preferences_dialog)) {
+	_tmp1_ = gtk_window_get_transient_for ((GtkWindow*) preferences_dialog_preferences_dialog);
+	if (GTK_WINDOW (parent) != _tmp1_) {
 		gtk_window_set_transient_for ((GtkWindow*) preferences_dialog_preferences_dialog, (GtkWindow*) parent);
 	}
 	gtk_window_present ((GtkWindow*) preferences_dialog_preferences_dialog);
 }
 
 
-static void preferences_dialog_init_schemes_treeview (PreferencesDialog* self, GtkTreeView* treeview, const char* current_id) {
+static void preferences_dialog_init_schemes_treeview (PreferencesDialog* self, GtkTreeView* treeview, const gchar* current_id) {
+	GtkListStore* _tmp0_ = NULL;
 	GtkListStore* list_store;
+	GtkCellRendererText* _tmp1_ = NULL;
 	GtkCellRendererText* renderer;
+	GtkTreeViewColumn* _tmp2_ = NULL;
 	GtkTreeViewColumn* column;
+	GtkTreeSelection* _tmp3_ = NULL;
+	GtkTreeSelection* _tmp4_;
 	GtkTreeSelection* select;
+	GtkSourceStyleSchemeManager* _tmp5_ = NULL;
+	GtkSourceStyleSchemeManager* _tmp6_;
 	GtkSourceStyleSchemeManager* manager;
+	gchar** _tmp7_;
+	gchar** _tmp8_ = NULL;
 	g_return_if_fail (self != NULL);
 	g_return_if_fail (treeview != NULL);
 	g_return_if_fail (current_id != NULL);
-	list_store = gtk_list_store_new ((gint) PREFERENCES_DIALOG_STYLE_SCHEMES_N_COLUMNS, G_TYPE_STRING, G_TYPE_STRING);
+	_tmp0_ = gtk_list_store_new ((gint) PREFERENCES_DIALOG_STYLE_SCHEMES_N_COLUMNS, G_TYPE_STRING, G_TYPE_STRING);
+	list_store = _tmp0_;
 	gtk_tree_sortable_set_sort_column_id ((GtkTreeSortable*) list_store, (gint) PREFERENCES_DIALOG_STYLE_SCHEMES_ID, GTK_SORT_ASCENDING);
 	gtk_tree_view_set_model (treeview, (GtkTreeModel*) list_store);
-	renderer = g_object_ref_sink ((GtkCellRendererText*) gtk_cell_renderer_text_new ());
-	column = g_object_ref_sink (gtk_tree_view_column_new_with_attributes ("Name and description", (GtkCellRenderer*) renderer, "markup", PREFERENCES_DIALOG_STYLE_SCHEMES_DESC, NULL, NULL));
+	_tmp1_ = (GtkCellRendererText*) gtk_cell_renderer_text_new ();
+	renderer = g_object_ref_sink (_tmp1_);
+	_tmp2_ = gtk_tree_view_column_new_with_attributes ("Name and description", (GtkCellRenderer*) renderer, "markup", PREFERENCES_DIALOG_STYLE_SCHEMES_DESC, NULL, NULL);
+	column = g_object_ref_sink (_tmp2_);
 	gtk_tree_view_append_column (treeview, column);
-	select = _g_object_ref0 (gtk_tree_view_get_selection (treeview));
+	_tmp3_ = gtk_tree_view_get_selection (treeview);
+	_tmp4_ = _g_object_ref0 (_tmp3_);
+	select = _tmp4_;
 	gtk_tree_selection_set_mode (select, GTK_SELECTION_SINGLE);
-	manager = _g_object_ref0 (gtk_source_style_scheme_manager_get_default ());
+	_tmp5_ = gtk_source_style_scheme_manager_get_default ();
+	_tmp6_ = _g_object_ref0 (_tmp5_);
+	manager = _tmp6_;
+	_tmp8_ = _tmp7_ = gtk_source_style_scheme_manager_get_scheme_ids (manager);
 	{
-		char** _tmp0_;
-		char** id_collection;
+		gchar** id_collection;
 		int id_collection_length1;
 		int id_it;
-		id_collection = _tmp0_ = gtk_source_style_scheme_manager_get_scheme_ids (manager);
-		id_collection_length1 = _vala_array_length (_tmp0_);
-		for (id_it = 0; id_it < _vala_array_length (_tmp0_); id_it = id_it + 1) {
-			char* id;
-			id = g_strdup (id_collection[id_it]);
+		id_collection = _tmp8_;
+		id_collection_length1 = _vala_array_length (_tmp7_);
+		for (id_it = 0; id_it < _vala_array_length (_tmp7_); id_it = id_it + 1) {
+			gchar* _tmp9_;
+			gchar* id;
+			_tmp9_ = g_strdup (id_collection[id_it]);
+			id = _tmp9_;
 			{
+				GtkSourceStyleScheme* _tmp10_ = NULL;
+				GtkSourceStyleScheme* _tmp11_;
 				GtkSourceStyleScheme* scheme;
-				char* desc;
+				const gchar* _tmp12_ = NULL;
+				const gchar* _tmp13_ = NULL;
+				gchar* _tmp14_ = NULL;
+				gchar* desc;
 				GtkTreeIter iter = {0};
-				scheme = _g_object_ref0 (gtk_source_style_scheme_manager_get_scheme (manager, id));
-				desc = g_strdup_printf ("<b>%s</b> - %s", gtk_source_style_scheme_get_name (scheme), gtk_source_style_scheme_get_description (scheme));
-				gtk_list_store_append (list_store, &iter);
-				gtk_list_store_set (list_store, &iter, PREFERENCES_DIALOG_STYLE_SCHEMES_ID, gtk_source_style_scheme_get_id (scheme), PREFERENCES_DIALOG_STYLE_SCHEMES_DESC, desc, -1, -1);
-				if (_vala_strcmp0 (id, current_id) == 0) {
+				GtkTreeIter _tmp15_ = {0};
+				const gchar* _tmp16_ = NULL;
+				_tmp10_ = gtk_source_style_scheme_manager_get_scheme (manager, id);
+				_tmp11_ = _g_object_ref0 (_tmp10_);
+				scheme = _tmp11_;
+				_tmp12_ = gtk_source_style_scheme_get_name (scheme);
+				_tmp13_ = gtk_source_style_scheme_get_description (scheme);
+				_tmp14_ = g_strdup_printf ("<b>%s</b> - %s", _tmp12_, _tmp13_);
+				desc = _tmp14_;
+				gtk_list_store_append (list_store, &_tmp15_);
+				iter = _tmp15_;
+				_tmp16_ = gtk_source_style_scheme_get_id (scheme);
+				gtk_list_store_set (list_store, &iter, PREFERENCES_DIALOG_STYLE_SCHEMES_ID, _tmp16_, PREFERENCES_DIALOG_STYLE_SCHEMES_DESC, desc, -1, -1);
+				if (g_strcmp0 (id, current_id) == 0) {
 					gtk_tree_selection_select_iter (select, &iter);
 				}
 				_g_free0 (desc);
@@ -893,24 +1180,36 @@ static void preferences_dialog_init_schemes_treeview (PreferencesDialog* self, G
 
 
 static void preferences_dialog_init_build_tools_treeview (PreferencesDialog* self) {
-	GtkListStore* _tmp0_;
+	GtkListStore* _tmp0_ = NULL;
+	GtkTreeViewColumn* _tmp1_ = NULL;
 	GtkTreeViewColumn* column;
+	GtkCellRendererPixbuf* _tmp2_ = NULL;
 	GtkCellRendererPixbuf* pixbuf_renderer;
+	GtkCellRendererText* _tmp3_ = NULL;
 	GtkCellRendererText* text_renderer;
+	GtkTreeSelection* _tmp4_ = NULL;
+	GtkTreeSelection* _tmp5_;
 	GtkTreeSelection* select;
 	g_return_if_fail (self != NULL);
-	self->priv->build_tools_store = (_tmp0_ = gtk_list_store_new ((gint) PREFERENCES_DIALOG_BUILD_TOOL_COLUMN_N_COLUMNS, G_TYPE_STRING, G_TYPE_STRING, G_TYPE_STRING), _g_object_unref0 (self->priv->build_tools_store), _tmp0_);
+	_tmp0_ = gtk_list_store_new ((gint) PREFERENCES_DIALOG_BUILD_TOOL_COLUMN_N_COLUMNS, G_TYPE_STRING, G_TYPE_STRING, G_TYPE_STRING);
+	_g_object_unref0 (self->priv->build_tools_store);
+	self->priv->build_tools_store = _tmp0_;
 	gtk_tree_view_set_model (self->priv->build_tools_view, (GtkTreeModel*) self->priv->build_tools_store);
-	column = g_object_ref_sink (gtk_tree_view_column_new ());
+	_tmp1_ = gtk_tree_view_column_new ();
+	column = g_object_ref_sink (_tmp1_);
 	gtk_tree_view_append_column (self->priv->build_tools_view, column);
-	pixbuf_renderer = g_object_ref_sink ((GtkCellRendererPixbuf*) gtk_cell_renderer_pixbuf_new ());
+	_tmp2_ = (GtkCellRendererPixbuf*) gtk_cell_renderer_pixbuf_new ();
+	pixbuf_renderer = g_object_ref_sink (_tmp2_);
 	gtk_cell_layout_pack_start ((GtkCellLayout*) column, (GtkCellRenderer*) pixbuf_renderer, FALSE);
 	gtk_tree_view_column_set_attributes (column, (GtkCellRenderer*) pixbuf_renderer, "stock-id", PREFERENCES_DIALOG_BUILD_TOOL_COLUMN_PIXBUF, NULL, NULL);
-	text_renderer = g_object_ref_sink ((GtkCellRendererText*) gtk_cell_renderer_text_new ());
+	_tmp3_ = (GtkCellRendererText*) gtk_cell_renderer_text_new ();
+	text_renderer = g_object_ref_sink (_tmp3_);
 	gtk_cell_layout_pack_start ((GtkCellLayout*) column, (GtkCellRenderer*) text_renderer, TRUE);
 	gtk_tree_view_column_set_attributes (column, (GtkCellRenderer*) text_renderer, "text", PREFERENCES_DIALOG_BUILD_TOOL_COLUMN_LABEL, NULL, NULL);
 	gtk_tree_view_set_tooltip_column (self->priv->build_tools_view, (gint) PREFERENCES_DIALOG_BUILD_TOOL_COLUMN_DESCRIPTION);
-	select = _g_object_ref0 (gtk_tree_view_get_selection (self->priv->build_tools_view));
+	_tmp4_ = gtk_tree_view_get_selection (self->priv->build_tools_view);
+	_tmp5_ = _g_object_ref0 (_tmp4_);
+	select = _tmp5_;
 	gtk_tree_selection_set_mode (select, GTK_SELECTION_SINGLE);
 	preferences_dialog_update_build_tools_store (self);
 	_g_object_unref0 (select);
@@ -921,76 +1220,118 @@ static void preferences_dialog_init_build_tools_treeview (PreferencesDialog* sel
 
 
 static void preferences_dialog_update_build_tools_store (PreferencesDialog* self) {
-	AppSettings* _tmp0_;
-	GeeLinkedList* _tmp1_;
+	AppSettings* _tmp0_ = NULL;
+	AppSettings* _tmp1_;
+	GeeLinkedList* _tmp2_ = NULL;
+	GeeLinkedList* _tmp3_;
 	GeeLinkedList* tools;
 	g_return_if_fail (self != NULL);
 	gtk_list_store_clear (self->priv->build_tools_store);
-	tools = (_tmp1_ = app_settings_get_build_tools (_tmp0_ = app_settings_get_default ()), _g_object_unref0 (_tmp0_), _tmp1_);
+	_tmp0_ = app_settings_get_default ();
+	_tmp1_ = _tmp0_;
+	_tmp2_ = app_settings_get_build_tools (_tmp1_);
+	_tmp3_ = _tmp2_;
+	_g_object_unref0 (_tmp1_);
+	tools = _tmp3_;
 	{
-		GeeIterator* _tool_it;
-		_tool_it = gee_abstract_collection_iterator ((GeeAbstractCollection*) tools);
+		GeeLinkedList* _tmp4_;
+		GeeLinkedList* _tool_list;
+		gint _tmp5_;
+		gint _tool_size;
+		gint _tool_index;
+		_tmp4_ = _g_object_ref0 (tools);
+		_tool_list = _tmp4_;
+		_tmp5_ = gee_collection_get_size ((GeeCollection*) _tool_list);
+		_tool_size = _tmp5_;
+		_tool_index = -1;
 		while (TRUE) {
-			BuildTool* _tmp2_;
-			BuildTool _tmp3_ = {0};
-			BuildTool _tmp4_;
+			gpointer _tmp6_ = NULL;
+			BuildTool* _tmp7_;
+			BuildTool _tmp8_;
+			BuildTool _tmp9_ = {0};
+			BuildTool _tmp10_;
 			BuildTool tool;
 			GtkTreeIter iter = {0};
-			if (!gee_iterator_next (_tool_it)) {
+			GtkTreeIter _tmp11_ = {0};
+			_tool_index = _tool_index + 1;
+			if (!(_tool_index < _tool_size)) {
 				break;
 			}
-			tool = (_tmp4_ = (build_tool_copy (_tmp2_ = (BuildTool*) gee_iterator_get (_tool_it), &_tmp3_), _tmp3_), _build_tool_free0 (_tmp2_), _tmp4_);
-			gtk_list_store_append (self->priv->build_tools_store, &iter);
+			_tmp6_ = gee_abstract_list_get ((GeeAbstractList*) _tool_list, _tool_index);
+			_tmp7_ = (BuildTool*) _tmp6_;
+			build_tool_copy (_tmp7_, &_tmp9_);
+			_tmp8_ = _tmp9_;
+			_tmp10_ = _tmp8_;
+			_build_tool_free0 (_tmp7_);
+			tool = _tmp10_;
+			gtk_list_store_append (self->priv->build_tools_store, &_tmp11_);
+			iter = _tmp11_;
 			gtk_list_store_set (self->priv->build_tools_store, &iter, PREFERENCES_DIALOG_BUILD_TOOL_COLUMN_PIXBUF, tool.icon, PREFERENCES_DIALOG_BUILD_TOOL_COLUMN_LABEL, tool.label, PREFERENCES_DIALOG_BUILD_TOOL_COLUMN_DESCRIPTION, tool.description, -1, -1);
 			build_tool_destroy (&tool);
 		}
-		_g_object_unref0 (_tool_it);
+		_g_object_unref0 (_tool_list);
 	}
 }
 
 
-static void _lambda94_ (PreferencesDialog* self) {
+static void _lambda97_ (PreferencesDialog* self) {
 	preferences_dialog_run_build_tool_dialog (self, -1);
 }
 
 
-static void __lambda94__gtk_button_clicked (GtkButton* _sender, gpointer self) {
-	_lambda94_ (self);
+static void __lambda97__gtk_button_clicked (GtkButton* _sender, gpointer self) {
+	_lambda97_ (self);
 }
 
 
-static void _lambda102_ (PreferencesDialog* self) {
+static void _lambda105_ (PreferencesDialog* self) {
+	gint _tmp0_;
 	gint num;
-	num = utils_get_selected_row (self->priv->build_tools_view, NULL);
+	_tmp0_ = utils_get_selected_row (self->priv->build_tools_view, NULL);
+	num = _tmp0_;
 	preferences_dialog_run_build_tool_dialog (self, num);
 }
 
 
-static void __lambda102__gtk_button_clicked (GtkButton* _sender, gpointer self) {
-	_lambda102_ (self);
+static void __lambda105__gtk_button_clicked (GtkButton* _sender, gpointer self) {
+	_lambda105_ (self);
 }
 
 
-static void _lambda103_ (PreferencesDialog* self) {
+static void _lambda106_ (PreferencesDialog* self) {
 	GtkTreeIter iter = {0};
+	GtkTreeIter _tmp0_ = {0};
+	gint _tmp1_;
 	gint i;
-	char* label;
+	gchar* label = NULL;
+	GtkTreeModel* _tmp2_;
 	GtkTreeModel* model;
+	const gchar* _tmp3_ = NULL;
+	GtkMessageDialog* _tmp4_ = NULL;
 	GtkDialog* dialog;
-	i = utils_get_selected_row (self->priv->build_tools_view, &iter);
+	gint _tmp5_;
+	_tmp1_ = utils_get_selected_row (self->priv->build_tools_view, &_tmp0_);
+	iter = _tmp0_;
+	i = _tmp1_;
 	if (i == (-1)) {
 		return;
 	}
-	label = NULL;
-	model = _g_object_ref0 (GTK_TREE_MODEL (self->priv->build_tools_store));
+	_tmp2_ = _g_object_ref0 (GTK_TREE_MODEL (self->priv->build_tools_store));
+	model = _tmp2_;
 	gtk_tree_model_get (model, &iter, PREFERENCES_DIALOG_BUILD_TOOL_COLUMN_LABEL, &label, -1, -1);
-	dialog = (GtkDialog*) g_object_ref_sink ((GtkMessageDialog*) gtk_message_dialog_new ((GtkWindow*) self, GTK_DIALOG_DESTROY_WITH_PARENT, GTK_MESSAGE_QUESTION, GTK_BUTTONS_NONE, _ ("Do you really want to delete the build tool \"%s\"?"), label));
+	_tmp3_ = _ ("Do you really want to delete the build tool \"%s\"?");
+	_tmp4_ = (GtkMessageDialog*) gtk_message_dialog_new ((GtkWindow*) self, GTK_DIALOG_DESTROY_WITH_PARENT, GTK_MESSAGE_QUESTION, GTK_BUTTONS_NONE, _tmp3_, label);
+	dialog = (GtkDialog*) g_object_ref_sink (_tmp4_);
 	gtk_dialog_add_buttons (dialog, GTK_STOCK_CANCEL, GTK_RESPONSE_CANCEL, GTK_STOCK_DELETE, GTK_RESPONSE_YES, NULL);
-	if (gtk_dialog_run (dialog) == GTK_RESPONSE_YES) {
-		AppSettings* _tmp0_;
+	_tmp5_ = gtk_dialog_run (dialog);
+	if (_tmp5_ == GTK_RESPONSE_YES) {
+		AppSettings* _tmp6_ = NULL;
+		AppSettings* _tmp7_;
 		gtk_list_store_remove (self->priv->build_tools_store, &iter);
-		app_settings_delete_build_tool (_tmp0_ = app_settings_get_default (), i);
-		_g_object_unref0 (_tmp0_);
+		_tmp6_ = app_settings_get_default ();
+		_tmp7_ = _tmp6_;
+		app_settings_delete_build_tool (_tmp7_, i);
+		_g_object_unref0 (_tmp7_);
 	}
 	gtk_object_destroy ((GtkObject*) dialog);
 	_g_object_unref0 (dialog);
@@ -999,68 +1340,95 @@ static void _lambda103_ (PreferencesDialog* self) {
 }
 
 
-static void __lambda103__gtk_button_clicked (GtkButton* _sender, gpointer self) {
-	_lambda103_ (self);
+static void __lambda106__gtk_button_clicked (GtkButton* _sender, gpointer self) {
+	_lambda106_ (self);
 }
 
 
-static void _lambda104_ (PreferencesDialog* self) {
+static void _lambda107_ (PreferencesDialog* self) {
 	GtkTreeIter iter1 = {0};
 	GtkTreeIter iter2 = {0};
+	GtkTreeIter _tmp0_ = {0};
+	gint _tmp1_;
 	gint i;
-	gboolean _tmp0_ = FALSE;
-	i = utils_get_selected_row (self->priv->build_tools_view, &iter1);
+	gboolean _tmp2_ = FALSE;
+	_tmp1_ = utils_get_selected_row (self->priv->build_tools_view, &_tmp0_);
+	iter1 = _tmp0_;
+	i = _tmp1_;
 	if (i != (-1)) {
-		_tmp0_ = i > 0;
+		_tmp2_ = i > 0;
 	} else {
-		_tmp0_ = FALSE;
+		_tmp2_ = FALSE;
 	}
-	if (_tmp0_) {
+	if (_tmp2_) {
+		gboolean _tmp3_;
 		iter2 = iter1;
-		if (utils_tree_model_iter_prev ((GtkTreeModel*) self->priv->build_tools_store, &iter2)) {
-			AppSettings* _tmp1_;
+		_tmp3_ = utils_tree_model_iter_prev ((GtkTreeModel*) self->priv->build_tools_store, &iter2);
+		if (_tmp3_) {
+			AppSettings* _tmp4_ = NULL;
+			AppSettings* _tmp5_;
 			gtk_list_store_swap (self->priv->build_tools_store, &iter1, &iter2);
-			app_settings_move_build_tool_up (_tmp1_ = app_settings_get_default (), i);
-			_g_object_unref0 (_tmp1_);
+			_tmp4_ = app_settings_get_default ();
+			_tmp5_ = _tmp4_;
+			app_settings_move_build_tool_up (_tmp5_, i);
+			_g_object_unref0 (_tmp5_);
 		}
 	}
 }
 
 
-static void __lambda104__gtk_button_clicked (GtkButton* _sender, gpointer self) {
-	_lambda104_ (self);
+static void __lambda107__gtk_button_clicked (GtkButton* _sender, gpointer self) {
+	_lambda107_ (self);
 }
 
 
-static void _lambda105_ (PreferencesDialog* self) {
+static void _lambda108_ (PreferencesDialog* self) {
 	GtkTreeIter iter1 = {0};
 	GtkTreeIter iter2 = {0};
+	GtkTreeIter _tmp0_ = {0};
+	gint _tmp1_;
 	gint i;
-	i = utils_get_selected_row (self->priv->build_tools_view, &iter1);
+	_tmp1_ = utils_get_selected_row (self->priv->build_tools_view, &_tmp0_);
+	iter1 = _tmp0_;
+	i = _tmp1_;
 	if (i != (-1)) {
+		gboolean _tmp2_;
 		iter2 = iter1;
-		if (gtk_tree_model_iter_next ((GtkTreeModel*) self->priv->build_tools_store, &iter2)) {
-			AppSettings* _tmp0_;
+		_tmp2_ = gtk_tree_model_iter_next ((GtkTreeModel*) self->priv->build_tools_store, &iter2);
+		if (_tmp2_) {
+			AppSettings* _tmp3_ = NULL;
+			AppSettings* _tmp4_;
 			gtk_list_store_swap (self->priv->build_tools_store, &iter1, &iter2);
-			app_settings_move_build_tool_down (_tmp0_ = app_settings_get_default (), i);
-			_g_object_unref0 (_tmp0_);
+			_tmp3_ = app_settings_get_default ();
+			_tmp4_ = _tmp3_;
+			app_settings_move_build_tool_down (_tmp4_, i);
+			_g_object_unref0 (_tmp4_);
 		}
 	}
 }
 
 
-static void __lambda105__gtk_button_clicked (GtkButton* _sender, gpointer self) {
-	_lambda105_ (self);
+static void __lambda108__gtk_button_clicked (GtkButton* _sender, gpointer self) {
+	_lambda108_ (self);
 }
 
 
-static void _lambda106_ (PreferencesDialog* self) {
+static void _lambda109_ (PreferencesDialog* self) {
+	const gchar* _tmp0_ = NULL;
+	GtkDialog* _tmp1_ = NULL;
 	GtkDialog* dialog;
-	dialog = preferences_dialog_get_reset_all_confirm_dialog (self, _ ("Do you really want to reset all build tools?"));
-	if (gtk_dialog_run (dialog) == GTK_RESPONSE_YES) {
-		AppSettings* _tmp0_;
-		app_settings_reset_all_build_tools (_tmp0_ = app_settings_get_default ());
-		_g_object_unref0 (_tmp0_);
+	gint _tmp2_;
+	_tmp0_ = _ ("Do you really want to reset all build tools?");
+	_tmp1_ = preferences_dialog_get_reset_all_confirm_dialog (self, _tmp0_);
+	dialog = _tmp1_;
+	_tmp2_ = gtk_dialog_run (dialog);
+	if (_tmp2_ == GTK_RESPONSE_YES) {
+		AppSettings* _tmp3_ = NULL;
+		AppSettings* _tmp4_;
+		_tmp3_ = app_settings_get_default ();
+		_tmp4_ = _tmp3_;
+		app_settings_reset_all_build_tools (_tmp4_);
+		_g_object_unref0 (_tmp4_);
 		preferences_dialog_update_build_tools_store (self);
 	}
 	gtk_object_destroy ((GtkObject*) dialog);
@@ -1068,8 +1436,8 @@ static void _lambda106_ (PreferencesDialog* self) {
 }
 
 
-static void __lambda106__gtk_button_clicked (GtkButton* _sender, gpointer self) {
-	_lambda106_ (self);
+static void __lambda109__gtk_button_clicked (GtkButton* _sender, gpointer self) {
+	_lambda109_ (self);
 }
 
 
@@ -1081,26 +1449,34 @@ static void preferences_dialog_init_build_tools_buttons (PreferencesDialog* self
 	g_return_if_fail (bt_down != NULL);
 	g_return_if_fail (bt_properties != NULL);
 	g_return_if_fail (bt_reset != NULL);
-	g_signal_connect_object (bt_new, "clicked", (GCallback) __lambda94__gtk_button_clicked, self, 0);
-	g_signal_connect_object (bt_properties, "clicked", (GCallback) __lambda102__gtk_button_clicked, self, 0);
-	g_signal_connect_object (bt_delete, "clicked", (GCallback) __lambda103__gtk_button_clicked, self, 0);
-	g_signal_connect_object (bt_up, "clicked", (GCallback) __lambda104__gtk_button_clicked, self, 0);
-	g_signal_connect_object (bt_down, "clicked", (GCallback) __lambda105__gtk_button_clicked, self, 0);
-	g_signal_connect_object (bt_reset, "clicked", (GCallback) __lambda106__gtk_button_clicked, self, 0);
+	g_signal_connect_object (bt_new, "clicked", (GCallback) __lambda97__gtk_button_clicked, self, 0);
+	g_signal_connect_object (bt_properties, "clicked", (GCallback) __lambda105__gtk_button_clicked, self, 0);
+	g_signal_connect_object (bt_delete, "clicked", (GCallback) __lambda106__gtk_button_clicked, self, 0);
+	g_signal_connect_object (bt_up, "clicked", (GCallback) __lambda107__gtk_button_clicked, self, 0);
+	g_signal_connect_object (bt_down, "clicked", (GCallback) __lambda108__gtk_button_clicked, self, 0);
+	g_signal_connect_object (bt_reset, "clicked", (GCallback) __lambda109__gtk_button_clicked, self, 0);
 }
 
 
-static GtkDialog* preferences_dialog_get_reset_all_confirm_dialog (PreferencesDialog* self, const char* msg) {
+static GtkDialog* preferences_dialog_get_reset_all_confirm_dialog (PreferencesDialog* self, const gchar* msg) {
 	GtkDialog* result = NULL;
+	GtkMessageDialog* _tmp0_ = NULL;
 	GtkDialog* dialog;
+	const gchar* _tmp1_ = NULL;
+	GtkButton* _tmp2_ = NULL;
 	GtkButton* button;
+	GtkImage* _tmp3_ = NULL;
 	GtkImage* image;
 	g_return_val_if_fail (self != NULL, NULL);
 	g_return_val_if_fail (msg != NULL, NULL);
-	dialog = (GtkDialog*) g_object_ref_sink ((GtkMessageDialog*) gtk_message_dialog_new ((GtkWindow*) self, GTK_DIALOG_DESTROY_WITH_PARENT, GTK_MESSAGE_QUESTION, GTK_BUTTONS_NONE, msg));
+	_tmp0_ = (GtkMessageDialog*) gtk_message_dialog_new ((GtkWindow*) self, GTK_DIALOG_DESTROY_WITH_PARENT, GTK_MESSAGE_QUESTION, GTK_BUTTONS_NONE, msg);
+	dialog = (GtkDialog*) g_object_ref_sink (_tmp0_);
 	gtk_dialog_add_button (dialog, GTK_STOCK_CANCEL, (gint) GTK_RESPONSE_CANCEL);
-	button = g_object_ref_sink ((GtkButton*) gtk_button_new_with_label (_ ("Reset All")));
-	image = g_object_ref_sink ((GtkImage*) gtk_image_new_from_stock (GTK_STOCK_CLEAR, GTK_ICON_SIZE_BUTTON));
+	_tmp1_ = _ ("Reset All");
+	_tmp2_ = (GtkButton*) gtk_button_new_with_label (_tmp1_);
+	button = g_object_ref_sink (_tmp2_);
+	_tmp3_ = (GtkImage*) gtk_image_new_from_stock (GTK_STOCK_CLEAR, GTK_ICON_SIZE_BUTTON);
+	image = g_object_ref_sink (_tmp3_);
 	gtk_button_set_image (button, (GtkWidget*) image);
 	gtk_widget_show_all ((GtkWidget*) button);
 	gtk_dialog_add_action_widget (dialog, (GtkWidget*) button, (gint) GTK_RESPONSE_YES);
@@ -1112,8 +1488,12 @@ static GtkDialog* preferences_dialog_get_reset_all_confirm_dialog (PreferencesDi
 
 
 static void preferences_dialog_run_build_tool_dialog (PreferencesDialog* self, gint num) {
+	GtkWindow* _tmp0_ = NULL;
+	gboolean _tmp1_;
 	g_return_if_fail (self != NULL);
-	if (build_tool_dialog_show_me (gtk_window_get_transient_for ((GtkWindow*) self), num)) {
+	_tmp0_ = gtk_window_get_transient_for ((GtkWindow*) self);
+	_tmp1_ = build_tool_dialog_show_me (_tmp0_, num);
+	if (_tmp1_) {
 		preferences_dialog_update_build_tools_store (self);
 	}
 }
@@ -1182,16 +1562,4 @@ static gint _vala_array_length (gpointer array) {
 }
 
 
-static int _vala_strcmp0 (const char * str1, const char * str2) {
-	if (str1 == NULL) {
-		return -(str1 != str2);
-	}
-	if (str2 == NULL) {
-		return str1 != str2;
-	}
-	return strcmp (str1, str2);
-}
-
-
-
 
diff --git a/src/C/project_dialogs.c b/src/C/project_dialogs.c
index 553d5f9..7dc7e32 100644
--- a/src/C/project_dialogs.c
+++ b/src/C/project_dialogs.c
@@ -1,4 +1,4 @@
-/* project_dialogs.c generated by valac 0.10.3, the Vala compiler
+/* project_dialogs.c generated by valac 0.12.1, the Vala compiler
  * generated from project_dialogs.vala, do not modify */
 
 /*
@@ -40,9 +40,10 @@
 
 typedef struct _MainWindow MainWindow;
 typedef struct _MainWindowClass MainWindowClass;
+typedef struct _Block9Data Block9Data;
+#define _g_object_unref0(var) ((var == NULL) ? NULL : (var = (g_object_unref (var), NULL)))
 #define _g_free0(var) (var = (g_free (var), NULL))
 #define _g_error_free0(var) ((var == NULL) ? NULL : (var = (g_error_free (var), NULL)))
-#define _g_object_unref0(var) ((var == NULL) ? NULL : (var = (g_object_unref (var), NULL)))
 
 #define TYPE_DOCUMENT (document_get_type ())
 #define DOCUMENT(obj) (G_TYPE_CHECK_INSTANCE_CAST ((obj), TYPE_DOCUMENT, Document))
@@ -67,23 +68,22 @@ typedef struct _Project Project;
 typedef struct _Projects Projects;
 typedef struct _ProjectsClass ProjectsClass;
 #define _projects_unref0(var) ((var == NULL) ? NULL : (var = (projects_unref (var), NULL)))
-typedef struct _Block9Data Block9Data;
 #define _project_free0(var) ((var == NULL) ? NULL : (var = (project_free (var), NULL)))
 
 #define PROJECT_DIALOGS_TYPE_PROJECT_COLUMN (project_dialogs_project_column_get_type ())
 typedef struct _Block10Data Block10Data;
 
-struct _Project {
-	GFile* directory;
-	GFile* main_file;
-};
-
 struct _Block9Data {
 	int _ref_count_;
 	GtkFileChooserButton* file_chooser_button1;
 	GtkFileChooserButton* file_chooser_button2;
 };
 
+struct _Project {
+	GFile* directory;
+	GFile* main_file;
+};
+
 typedef enum  {
 	PROJECT_DIALOGS_PROJECT_COLUMN_DIRECTORY,
 	PROJECT_DIALOGS_PROJECT_COLUMN_MAIN_FILE,
@@ -101,8 +101,10 @@ struct _Block10Data {
 
 GType main_window_get_type (void) G_GNUC_CONST;
 void project_dialogs_new_project (MainWindow* main_window);
-static void _lambda65_ (Block9Data* _data9_);
-static void __lambda65__gtk_file_chooser_button_file_set (GtkFileChooserButton* _sender, gpointer self);
+static Block9Data* block9_data_ref (Block9Data* _data9_);
+static void block9_data_unref (Block9Data* _data9_);
+static void _lambda68_ (Block9Data* _data9_);
+static void __lambda68__gtk_file_chooser_button_file_set (GtkFileChooserButton* _sender, gpointer self);
 GType document_get_type (void) G_GNUC_CONST;
 Document* main_window_get_active_document (MainWindow* self);
 GFile* document_get_location (Document* self);
@@ -121,45 +123,59 @@ gpointer value_get_projects (const GValue* value);
 GType projects_get_type (void) G_GNUC_CONST;
 Projects* projects_get_default (void);
 gboolean projects_add (Projects* self, Project* new_project, GFile** conflict_file);
-char* utils_replace_home_dir_with_tilde (const char* uri);
-static Block9Data* block9_data_ref (Block9Data* _data9_);
-static void block9_data_unref (Block9Data* _data9_);
+gchar* utils_replace_home_dir_with_tilde (const gchar* uri);
 gboolean project_dialogs_configure_project (GtkWindow* main_window, gint project_id);
 Project* projects_get (Projects* self, gint id);
 gboolean projects_change_main_file (Projects* self, gint num, GFile* new_main_file);
 GType project_dialogs_project_column_get_type (void) G_GNUC_CONST;
 void project_dialogs_manage_projects (MainWindow* main_window);
+static Block10Data* block10_data_ref (Block10Data* _data10_);
+static void block10_data_unref (Block10Data* _data10_);
 void project_dialogs_update_model (GtkListStore* model);
 GtkWidget* utils_add_scrollbar (GtkWidget* child);
-static void _lambda66_ (Block10Data* _data10_);
+static void _lambda69_ (Block10Data* _data10_);
 gint utils_get_selected_row (GtkTreeView* view, GtkTreeIter* iter_to_set);
-static void __lambda66__gtk_button_clicked (GtkButton* _sender, gpointer self);
-static void _lambda67_ (Block10Data* _data10_);
+static void __lambda69__gtk_button_clicked (GtkButton* _sender, gpointer self);
+static void _lambda70_ (Block10Data* _data10_);
 void projects_delete (Projects* self, gint num);
-static void __lambda67__gtk_button_clicked (GtkButton* _sender, gpointer self);
-static void _lambda68_ (Block10Data* _data10_);
+static void __lambda70__gtk_button_clicked (GtkButton* _sender, gpointer self);
+static void _lambda71_ (Block10Data* _data10_);
 void projects_clear_all (Projects* self);
-static void __lambda68__gtk_button_clicked (GtkButton* _sender, gpointer self);
-static Block10Data* block10_data_ref (Block10Data* _data10_);
-static void block10_data_unref (Block10Data* _data10_);
+static void __lambda71__gtk_button_clicked (GtkButton* _sender, gpointer self);
 GeeLinkedList* projects_get_projects (Projects* self);
 
 
+static Block9Data* block9_data_ref (Block9Data* _data9_) {
+	g_atomic_int_inc (&_data9_->_ref_count_);
+	return _data9_;
+}
+
+
+static void block9_data_unref (Block9Data* _data9_) {
+	if (g_atomic_int_dec_and_test (&_data9_->_ref_count_)) {
+		_g_object_unref0 (_data9_->file_chooser_button2);
+		_g_object_unref0 (_data9_->file_chooser_button1);
+		g_slice_free (Block9Data, _data9_);
+	}
+}
+
 
 static gpointer _g_object_ref0 (gpointer self) {
 	return self ? g_object_ref (self) : NULL;
 }
 
 
-static void _lambda65_ (Block9Data* _data9_) {
+static void _lambda68_ (Block9Data* _data9_) {
+	GFile* _tmp0_ = NULL;
+	GFile* _tmp1_;
 	GFile* dir;
 	GError * _inner_error_ = NULL;
-	dir = _g_object_ref0 (gtk_file_chooser_get_file ((GtkFileChooser*) _data9_->file_chooser_button1));
-	{
-		gtk_file_chooser_set_current_folder_file ((GtkFileChooser*) _data9_->file_chooser_button2, dir, &_inner_error_);
-		if (_inner_error_ != NULL) {
-			goto __catch25_g_error;
-		}
+	_tmp0_ = gtk_file_chooser_get_file ((GtkFileChooser*) _data9_->file_chooser_button1);
+	_tmp1_ = _g_object_ref0 (_tmp0_);
+	dir = _tmp1_;
+	gtk_file_chooser_set_current_folder_file ((GtkFileChooser*) _data9_->file_chooser_button2, dir, &_inner_error_);
+	if (_inner_error_ != NULL) {
+		goto __catch25_g_error;
 	}
 	goto __finally25;
 	__catch25_g_error:
@@ -167,9 +183,7 @@ static void _lambda65_ (Block9Data* _data9_) {
 		GError * e;
 		e = _inner_error_;
 		_inner_error_ = NULL;
-		{
-			_g_error_free0 (e);
-		}
+		_g_error_free0 (e);
 	}
 	__finally25:
 	if (_inner_error_ != NULL) {
@@ -182,82 +196,118 @@ static void _lambda65_ (Block9Data* _data9_) {
 }
 
 
-static void __lambda65__gtk_file_chooser_button_file_set (GtkFileChooserButton* _sender, gpointer self) {
-	_lambda65_ (self);
-}
-
-
-static Block9Data* block9_data_ref (Block9Data* _data9_) {
-	g_atomic_int_inc (&_data9_->_ref_count_);
-	return _data9_;
-}
-
-
-static void block9_data_unref (Block9Data* _data9_) {
-	if (g_atomic_int_dec_and_test (&_data9_->_ref_count_)) {
-		_g_object_unref0 (_data9_->file_chooser_button2);
-		_g_object_unref0 (_data9_->file_chooser_button1);
-		g_slice_free (Block9Data, _data9_);
-	}
+static void __lambda68__gtk_file_chooser_button_file_set (GtkFileChooserButton* _sender, gpointer self) {
+	_lambda68_ (self);
 }
 
 
 void project_dialogs_new_project (MainWindow* main_window) {
 	Block9Data* _data9_;
+	const gchar* _tmp0_ = NULL;
+	GtkDialog* _tmp1_ = NULL;
 	GtkDialog* dialog;
+	GtkWidget* _tmp2_ = NULL;
+	GtkVBox* _tmp3_;
 	GtkVBox* content_area;
+	GtkHBox* _tmp4_ = NULL;
 	GtkHBox* hbox;
+	GtkVBox* _tmp5_ = NULL;
 	GtkVBox* vbox1;
+	GtkVBox* _tmp6_ = NULL;
 	GtkVBox* vbox2;
+	GtkLabel* _tmp7_ = NULL;
 	GtkLabel* label1;
-	char* _tmp0_;
-	char* _tmp1_;
+	const gchar* _tmp8_ = NULL;
+	gchar* _tmp9_;
+	gchar* _tmp10_;
+	gchar* _tmp11_;
+	gchar* _tmp12_;
+	GtkLabel* _tmp13_ = NULL;
 	GtkLabel* label2;
-	char* _tmp2_;
-	char* _tmp3_;
+	const gchar* _tmp14_ = NULL;
+	gchar* _tmp15_;
+	gchar* _tmp16_;
+	gchar* _tmp17_;
+	gchar* _tmp18_;
+	const gchar* _tmp19_ = NULL;
+	GtkFileChooserButton* _tmp20_ = NULL;
+	const gchar* _tmp21_ = NULL;
+	GtkFileChooserButton* _tmp22_ = NULL;
+	Document* _tmp23_ = NULL;
+	Document* _tmp24_;
 	Document* doc;
 	GError * _inner_error_ = NULL;
 	g_return_if_fail (main_window != NULL);
 	_data9_ = g_slice_new0 (Block9Data);
 	_data9_->_ref_count_ = 1;
-	dialog = g_object_ref_sink ((GtkDialog*) gtk_dialog_new_with_buttons (_ ("New Project"), (GtkWindow*) main_window, GTK_DIALOG_DESTROY_WITH_PARENT, GTK_STOCK_CANCEL, GTK_RESPONSE_CANCEL, GTK_STOCK_NEW, GTK_RESPONSE_OK, NULL, NULL));
-	content_area = _g_object_ref0 (GTK_VBOX (gtk_dialog_get_content_area (dialog)));
-	hbox = g_object_ref_sink ((GtkHBox*) gtk_hbox_new (FALSE, 6));
-	vbox1 = g_object_ref_sink ((GtkVBox*) gtk_vbox_new (TRUE, 6));
-	vbox2 = g_object_ref_sink ((GtkVBox*) gtk_vbox_new (TRUE, 6));
-	gtk_box_pack_start ((GtkBox*) hbox, (GtkWidget*) vbox1, FALSE, FALSE, 0);
-	gtk_box_pack_start ((GtkBox*) hbox, (GtkWidget*) vbox2, TRUE, TRUE, 0);
+	_tmp0_ = _ ("New Project");
+	_tmp1_ = (GtkDialog*) gtk_dialog_new_with_buttons (_tmp0_, (GtkWindow*) main_window, GTK_DIALOG_DESTROY_WITH_PARENT, GTK_STOCK_CANCEL, GTK_RESPONSE_CANCEL, GTK_STOCK_NEW, GTK_RESPONSE_OK, NULL, NULL);
+	dialog = g_object_ref_sink (_tmp1_);
+	_tmp2_ = gtk_dialog_get_content_area (dialog);
+	_tmp3_ = _g_object_ref0 (GTK_VBOX (_tmp2_));
+	content_area = _tmp3_;
+	_tmp4_ = (GtkHBox*) gtk_hbox_new (FALSE, 6);
+	hbox = g_object_ref_sink (_tmp4_);
+	_tmp5_ = (GtkVBox*) gtk_vbox_new (TRUE, 6);
+	vbox1 = g_object_ref_sink (_tmp5_);
+	_tmp6_ = (GtkVBox*) gtk_vbox_new (TRUE, 6);
+	vbox2 = g_object_ref_sink (_tmp6_);
+	gtk_box_pack_start ((GtkBox*) hbox, (GtkWidget*) vbox1, FALSE, FALSE, (guint) 0);
+	gtk_box_pack_start ((GtkBox*) hbox, (GtkWidget*) vbox2, TRUE, TRUE, (guint) 0);
 	gtk_container_set_border_width ((GtkContainer*) hbox, (guint) 6);
-	label1 = g_object_ref_sink ((GtkLabel*) gtk_label_new (NULL));
-	gtk_label_set_markup (label1, _tmp1_ = g_strconcat (_tmp0_ = g_strconcat ("<b>", _ ("Directory:"), NULL), "</b>", NULL));
-	_g_free0 (_tmp1_);
-	_g_free0 (_tmp0_);
-	label2 = g_object_ref_sink ((GtkLabel*) gtk_label_new (NULL));
-	gtk_label_set_markup (label2, _tmp3_ = g_strconcat (_tmp2_ = g_strconcat ("<b>", _ ("Main File:"), NULL), "</b>", NULL));
-	_g_free0 (_tmp3_);
-	_g_free0 (_tmp2_);
-	gtk_box_pack_start ((GtkBox*) vbox1, (GtkWidget*) label1, TRUE, TRUE, 0);
-	gtk_box_pack_start ((GtkBox*) vbox1, (GtkWidget*) label2, TRUE, TRUE, 0);
-	_data9_->file_chooser_button1 = g_object_ref_sink ((GtkFileChooserButton*) gtk_file_chooser_button_new (_ ("Directory"), GTK_FILE_CHOOSER_ACTION_SELECT_FOLDER));
-	_data9_->file_chooser_button2 = g_object_ref_sink ((GtkFileChooserButton*) gtk_file_chooser_button_new (_ ("Main File"), GTK_FILE_CHOOSER_ACTION_OPEN));
-	gtk_box_pack_start ((GtkBox*) vbox2, (GtkWidget*) _data9_->file_chooser_button1, TRUE, TRUE, 0);
-	gtk_box_pack_start ((GtkBox*) vbox2, (GtkWidget*) _data9_->file_chooser_button2, TRUE, TRUE, 0);
-	gtk_box_pack_start ((GtkBox*) content_area, (GtkWidget*) hbox, TRUE, TRUE, 0);
+	_tmp7_ = (GtkLabel*) gtk_label_new (NULL);
+	label1 = g_object_ref_sink (_tmp7_);
+	_tmp8_ = _ ("Directory:");
+	_tmp9_ = g_strconcat ("<b>", _tmp8_, NULL);
+	_tmp10_ = _tmp9_;
+	_tmp11_ = g_strconcat (_tmp10_, "</b>", NULL);
+	_tmp12_ = _tmp11_;
+	gtk_label_set_markup (label1, _tmp12_);
+	_g_free0 (_tmp12_);
+	_g_free0 (_tmp10_);
+	_tmp13_ = (GtkLabel*) gtk_label_new (NULL);
+	label2 = g_object_ref_sink (_tmp13_);
+	_tmp14_ = _ ("Main File:");
+	_tmp15_ = g_strconcat ("<b>", _tmp14_, NULL);
+	_tmp16_ = _tmp15_;
+	_tmp17_ = g_strconcat (_tmp16_, "</b>", NULL);
+	_tmp18_ = _tmp17_;
+	gtk_label_set_markup (label2, _tmp18_);
+	_g_free0 (_tmp18_);
+	_g_free0 (_tmp16_);
+	gtk_box_pack_start ((GtkBox*) vbox1, (GtkWidget*) label1, TRUE, TRUE, (guint) 0);
+	gtk_box_pack_start ((GtkBox*) vbox1, (GtkWidget*) label2, TRUE, TRUE, (guint) 0);
+	_tmp19_ = _ ("Directory");
+	_tmp20_ = (GtkFileChooserButton*) gtk_file_chooser_button_new (_tmp19_, GTK_FILE_CHOOSER_ACTION_SELECT_FOLDER);
+	_data9_->file_chooser_button1 = g_object_ref_sink (_tmp20_);
+	_tmp21_ = _ ("Main File");
+	_tmp22_ = (GtkFileChooserButton*) gtk_file_chooser_button_new (_tmp21_, GTK_FILE_CHOOSER_ACTION_OPEN);
+	_data9_->file_chooser_button2 = g_object_ref_sink (_tmp22_);
+	gtk_box_pack_start ((GtkBox*) vbox2, (GtkWidget*) _data9_->file_chooser_button1, TRUE, TRUE, (guint) 0);
+	gtk_box_pack_start ((GtkBox*) vbox2, (GtkWidget*) _data9_->file_chooser_button2, TRUE, TRUE, (guint) 0);
+	gtk_box_pack_start ((GtkBox*) content_area, (GtkWidget*) hbox, TRUE, TRUE, (guint) 0);
 	gtk_widget_show_all ((GtkWidget*) content_area);
-	g_signal_connect_data (_data9_->file_chooser_button1, "file-set", (GCallback) __lambda65__gtk_file_chooser_button_file_set, block9_data_ref (_data9_), (GClosureNotify) block9_data_unref, 0);
-	doc = _g_object_ref0 (main_window_get_active_document (main_window));
+	g_signal_connect_data (_data9_->file_chooser_button1, "file-set", (GCallback) __lambda68__gtk_file_chooser_button_file_set, block9_data_ref (_data9_), (GClosureNotify) block9_data_unref, 0);
+	_tmp23_ = main_window_get_active_document (main_window);
+	_tmp24_ = _g_object_ref0 (_tmp23_);
+	doc = _tmp24_;
 	if (doc != NULL) {
-		{
-			GFile* _tmp4_;
-			gtk_file_chooser_set_file ((GtkFileChooser*) _data9_->file_chooser_button1, _tmp4_ = g_file_get_parent (document_get_location (doc)), &_inner_error_);
-			_g_object_unref0 (_tmp4_);
-			if (_inner_error_ != NULL) {
-				goto __catch26_g_error;
-			}
-			gtk_file_chooser_set_file ((GtkFileChooser*) _data9_->file_chooser_button2, document_get_location (doc), &_inner_error_);
-			if (_inner_error_ != NULL) {
-				goto __catch26_g_error;
-			}
+		GFile* _tmp25_ = NULL;
+		GFile* _tmp26_ = NULL;
+		GFile* _tmp27_;
+		GFile* _tmp28_ = NULL;
+		_tmp25_ = document_get_location (doc);
+		_tmp26_ = g_file_get_parent (_tmp25_);
+		_tmp27_ = _tmp26_;
+		gtk_file_chooser_set_file ((GtkFileChooser*) _data9_->file_chooser_button1, _tmp27_, &_inner_error_);
+		_g_object_unref0 (_tmp27_);
+		if (_inner_error_ != NULL) {
+			goto __catch26_g_error;
+		}
+		_tmp28_ = document_get_location (doc);
+		gtk_file_chooser_set_file ((GtkFileChooser*) _data9_->file_chooser_button2, _tmp28_, &_inner_error_);
+		if (_inner_error_ != NULL) {
+			goto __catch26_g_error;
 		}
 		goto __finally26;
 		__catch26_g_error:
@@ -265,9 +315,7 @@ void project_dialogs_new_project (MainWindow* main_window) {
 			GError * e;
 			e = _inner_error_;
 			_inner_error_ = NULL;
-			{
-				_g_error_free0 (e);
-			}
+			_g_error_free0 (e);
 		}
 		__finally26:
 		if (_inner_error_ != NULL) {
@@ -280,61 +328,101 @@ void project_dialogs_new_project (MainWindow* main_window) {
 			_g_object_unref0 (content_area);
 			_g_object_unref0 (dialog);
 			block9_data_unref (_data9_);
+			_data9_ = NULL;
 			g_critical ("file %s: line %d: uncaught error: %s (%s, %d)", __FILE__, __LINE__, _inner_error_->message, g_quark_to_string (_inner_error_->domain), _inner_error_->code);
 			g_clear_error (&_inner_error_);
 			return;
 		}
 	}
 	while (TRUE) {
+		gint _tmp29_;
+		GFile* _tmp30_ = NULL;
+		GFile* _tmp31_;
 		GFile* directory;
+		GFile* _tmp32_ = NULL;
+		GFile* _tmp33_;
 		GFile* main_file;
-		gboolean _tmp5_ = FALSE;
+		gboolean _tmp34_ = FALSE;
+		gboolean _tmp35_;
 		Project project = {0};
-		GFile* _tmp6_;
-		GFile* _tmp7_;
-		GFile* conflict;
-		Projects* _tmp8_;
-		GFile* _tmp9_ = NULL;
-		gboolean _tmp10_;
-		GFile* _tmp11_;
-		gboolean _tmp12_;
-		char* _tmp13_;
-		char* _tmp14_;
-		char* _tmp15_;
-		GtkDialog* _tmp16_;
+		GFile* _tmp36_;
+		GFile* _tmp37_;
+		GFile* conflict = NULL;
+		Projects* _tmp38_ = NULL;
+		Projects* _tmp39_;
+		GFile* _tmp40_ = NULL;
+		gboolean _tmp41_;
+		gboolean _tmp42_;
+		const gchar* _tmp43_ = NULL;
+		gchar* _tmp44_ = NULL;
+		gchar* _tmp45_;
+		gchar* _tmp46_ = NULL;
+		gchar* _tmp47_;
+		gchar* _tmp48_;
+		gchar* _tmp49_;
+		GtkMessageDialog* _tmp50_ = NULL;
+		GtkDialog* _tmp51_;
 		GtkDialog* error_dialog;
-		if (!(gtk_dialog_run (dialog) == GTK_RESPONSE_OK)) {
+		_tmp29_ = gtk_dialog_run (dialog);
+		if (!(_tmp29_ == GTK_RESPONSE_OK)) {
 			break;
 		}
-		directory = _g_object_ref0 (gtk_file_chooser_get_file ((GtkFileChooser*) _data9_->file_chooser_button1));
-		main_file = _g_object_ref0 (gtk_file_chooser_get_file ((GtkFileChooser*) _data9_->file_chooser_button2));
+		_tmp30_ = gtk_file_chooser_get_file ((GtkFileChooser*) _data9_->file_chooser_button1);
+		_tmp31_ = _g_object_ref0 (_tmp30_);
+		directory = _tmp31_;
+		_tmp32_ = gtk_file_chooser_get_file ((GtkFileChooser*) _data9_->file_chooser_button2);
+		_tmp33_ = _g_object_ref0 (_tmp32_);
+		main_file = _tmp33_;
 		if (directory == NULL) {
-			_tmp5_ = TRUE;
+			_tmp34_ = TRUE;
 		} else {
-			_tmp5_ = main_file == NULL;
+			_tmp34_ = main_file == NULL;
 		}
-		if (_tmp5_) {
+		if (_tmp34_) {
 			_g_object_unref0 (main_file);
 			_g_object_unref0 (directory);
 			continue;
 		}
-		if (!project_dialogs_main_file_is_in_directory ((GtkWindow*) dialog, main_file, directory)) {
+		_tmp35_ = project_dialogs_main_file_is_in_directory ((GtkWindow*) dialog, main_file, directory);
+		if (!_tmp35_) {
 			_g_object_unref0 (main_file);
 			_g_object_unref0 (directory);
 			continue;
 		}
 		memset (&project, 0, sizeof (Project));
-		project.directory = (_tmp6_ = _g_object_ref0 (directory), _g_object_unref0 (project.directory), _tmp6_);
-		project.main_file = (_tmp7_ = _g_object_ref0 (main_file), _g_object_unref0 (project.main_file), _tmp7_);
-		conflict = NULL;
-		if ((_tmp12_ = (_tmp10_ = projects_add (_tmp8_ = projects_get_default (), &project, &_tmp9_), conflict = (_tmp11_ = _tmp9_, _g_object_unref0 (conflict), _tmp11_), _tmp10_), _projects_unref0 (_tmp8_), _tmp12_)) {
+		_tmp36_ = _g_object_ref0 (directory);
+		_g_object_unref0 (project.directory);
+		project.directory = _tmp36_;
+		_tmp37_ = _g_object_ref0 (main_file);
+		_g_object_unref0 (project.main_file);
+		project.main_file = _tmp37_;
+		_tmp38_ = projects_get_default ();
+		_tmp39_ = _tmp38_;
+		_tmp41_ = projects_add (_tmp39_, &project, &_tmp40_);
+		_g_object_unref0 (conflict);
+		conflict = _tmp40_;
+		_tmp42_ = _tmp41_;
+		_projects_unref0 (_tmp39_);
+		if (_tmp42_) {
 			_g_object_unref0 (conflict);
 			project_destroy (&project);
 			_g_object_unref0 (main_file);
 			_g_object_unref0 (directory);
 			break;
 		}
-		error_dialog = (_tmp16_ = (GtkDialog*) g_object_ref_sink ((GtkMessageDialog*) gtk_message_dialog_new ((GtkWindow*) dialog, GTK_DIALOG_DESTROY_WITH_PARENT, GTK_MESSAGE_ERROR, GTK_BUTTONS_OK, _ ("There is a conflict with the project \"%s\"."), _tmp15_ = g_strconcat (_tmp14_ = utils_replace_home_dir_with_tilde (_tmp13_ = g_file_get_parse_name (conflict)), "/", NULL))), _g_free0 (_tmp15_), _g_free0 (_tmp14_), _g_free0 (_tmp13_), _tmp16_);
+		_tmp43_ = _ ("There is a conflict with the project \"%s\".");
+		_tmp44_ = g_file_get_parse_name (conflict);
+		_tmp45_ = _tmp44_;
+		_tmp46_ = utils_replace_home_dir_with_tilde (_tmp45_);
+		_tmp47_ = _tmp46_;
+		_tmp48_ = g_strconcat (_tmp47_, "/", NULL);
+		_tmp49_ = _tmp48_;
+		_tmp50_ = (GtkMessageDialog*) gtk_message_dialog_new ((GtkWindow*) dialog, GTK_DIALOG_DESTROY_WITH_PARENT, GTK_MESSAGE_ERROR, GTK_BUTTONS_OK, _tmp43_, _tmp49_);
+		_tmp51_ = (GtkDialog*) g_object_ref_sink (_tmp50_);
+		_g_free0 (_tmp49_);
+		_g_free0 (_tmp47_);
+		_g_free0 (_tmp45_);
+		error_dialog = _tmp51_;
 		gtk_dialog_run (error_dialog);
 		gtk_object_destroy ((GtkObject*) error_dialog);
 		_g_object_unref0 (error_dialog);
@@ -353,47 +441,92 @@ void project_dialogs_new_project (MainWindow* main_window) {
 	_g_object_unref0 (content_area);
 	_g_object_unref0 (dialog);
 	block9_data_unref (_data9_);
+	_data9_ = NULL;
 }
 
 
 gboolean project_dialogs_configure_project (GtkWindow* main_window, gint project_id) {
 	gboolean result = FALSE;
-	Projects* _tmp0_;
-	Project* _tmp1_;
+	Projects* _tmp0_ = NULL;
+	Projects* _tmp1_;
+	Project* _tmp2_ = NULL;
+	Project* _tmp3_;
 	Project* project;
+	const gchar* _tmp4_ = NULL;
+	GtkDialog* _tmp5_ = NULL;
 	GtkDialog* dialog;
+	GtkWidget* _tmp6_ = NULL;
+	GtkVBox* _tmp7_;
 	GtkVBox* content_area;
-	char* _tmp2_;
-	char* _tmp3_;
-	char* _tmp4_;
-	char* _tmp5_;
-	GtkLabel* _tmp6_;
+	const gchar* _tmp8_ = NULL;
+	gchar* _tmp9_ = NULL;
+	gchar* _tmp10_;
+	gchar* _tmp11_ = NULL;
+	gchar* _tmp12_;
+	gchar* _tmp13_;
+	gchar* _tmp14_;
+	gchar* _tmp15_ = NULL;
+	gchar* _tmp16_;
+	GtkLabel* _tmp17_ = NULL;
+	GtkLabel* _tmp18_;
 	GtkLabel* location;
+	GtkHBox* _tmp19_ = NULL;
 	GtkHBox* hbox;
+	const gchar* _tmp20_ = NULL;
+	GtkLabel* _tmp21_ = NULL;
 	GtkLabel* label;
+	const gchar* _tmp22_ = NULL;
+	GtkFileChooserButton* _tmp23_ = NULL;
 	GtkFileChooserButton* file_chooser_button;
 	gboolean ret;
 	GError * _inner_error_ = NULL;
 	g_return_val_if_fail (main_window != NULL, FALSE);
-	project = (_tmp1_ = projects_get (_tmp0_ = projects_get_default (), project_id), _projects_unref0 (_tmp0_), _tmp1_);
+	_tmp0_ = projects_get_default ();
+	_tmp1_ = _tmp0_;
+	_tmp2_ = projects_get (_tmp1_, project_id);
+	_tmp3_ = _tmp2_;
+	_projects_unref0 (_tmp1_);
+	project = _tmp3_;
 	g_return_val_if_fail (project != NULL, FALSE);
-	dialog = g_object_ref_sink ((GtkDialog*) gtk_dialog_new_with_buttons (_ ("Configure Project"), main_window, GTK_DIALOG_DESTROY_WITH_PARENT, GTK_STOCK_CANCEL, GTK_RESPONSE_CANCEL, GTK_STOCK_OK, GTK_RESPONSE_OK, NULL, NULL));
-	content_area = _g_object_ref0 (GTK_VBOX (gtk_dialog_get_content_area (dialog)));
-	location = (_tmp6_ = g_object_ref_sink ((GtkLabel*) gtk_label_new (_tmp5_ = g_strdup_printf (_ ("Location of the project: %s"), _tmp4_ = g_strconcat (_tmp3_ = utils_replace_home_dir_with_tilde (_tmp2_ = g_file_get_parse_name ((*project).directory)), "/", NULL)))), _g_free0 (_tmp5_), _g_free0 (_tmp4_), _g_free0 (_tmp3_), _g_free0 (_tmp2_), _tmp6_);
+	_tmp4_ = _ ("Configure Project");
+	_tmp5_ = (GtkDialog*) gtk_dialog_new_with_buttons (_tmp4_, main_window, GTK_DIALOG_DESTROY_WITH_PARENT, GTK_STOCK_CANCEL, GTK_RESPONSE_CANCEL, GTK_STOCK_OK, GTK_RESPONSE_OK, NULL, NULL);
+	dialog = g_object_ref_sink (_tmp5_);
+	_tmp6_ = gtk_dialog_get_content_area (dialog);
+	_tmp7_ = _g_object_ref0 (GTK_VBOX (_tmp6_));
+	content_area = _tmp7_;
+	_tmp8_ = _ ("Location of the project: %s");
+	_tmp9_ = g_file_get_parse_name ((*project).directory);
+	_tmp10_ = _tmp9_;
+	_tmp11_ = utils_replace_home_dir_with_tilde (_tmp10_);
+	_tmp12_ = _tmp11_;
+	_tmp13_ = g_strconcat (_tmp12_, "/", NULL);
+	_tmp14_ = _tmp13_;
+	_tmp15_ = g_strdup_printf (_tmp8_, _tmp14_);
+	_tmp16_ = _tmp15_;
+	_tmp17_ = (GtkLabel*) gtk_label_new (_tmp16_);
+	_tmp18_ = g_object_ref_sink (_tmp17_);
+	_g_free0 (_tmp16_);
+	_g_free0 (_tmp14_);
+	_g_free0 (_tmp12_);
+	_g_free0 (_tmp10_);
+	location = _tmp18_;
 	gtk_label_set_line_wrap (location, TRUE);
 	gtk_box_pack_start ((GtkBox*) content_area, (GtkWidget*) location, FALSE, FALSE, (guint) 6);
-	hbox = g_object_ref_sink ((GtkHBox*) gtk_hbox_new (FALSE, 6));
-	gtk_box_pack_start ((GtkBox*) content_area, (GtkWidget*) hbox, TRUE, TRUE, 0);
-	label = g_object_ref_sink ((GtkLabel*) gtk_label_new (_ ("Main File:")));
-	gtk_box_pack_start ((GtkBox*) hbox, (GtkWidget*) label, FALSE, FALSE, 0);
-	file_chooser_button = g_object_ref_sink ((GtkFileChooserButton*) gtk_file_chooser_button_new (_ ("Main File"), GTK_FILE_CHOOSER_ACTION_OPEN));
-	gtk_box_pack_start ((GtkBox*) hbox, (GtkWidget*) file_chooser_button, TRUE, TRUE, 0);
+	_tmp19_ = (GtkHBox*) gtk_hbox_new (FALSE, 6);
+	hbox = g_object_ref_sink (_tmp19_);
+	gtk_box_pack_start ((GtkBox*) content_area, (GtkWidget*) hbox, TRUE, TRUE, (guint) 0);
+	_tmp20_ = _ ("Main File:");
+	_tmp21_ = (GtkLabel*) gtk_label_new (_tmp20_);
+	label = g_object_ref_sink (_tmp21_);
+	gtk_box_pack_start ((GtkBox*) hbox, (GtkWidget*) label, FALSE, FALSE, (guint) 0);
+	_tmp22_ = _ ("Main File");
+	_tmp23_ = (GtkFileChooserButton*) gtk_file_chooser_button_new (_tmp22_, GTK_FILE_CHOOSER_ACTION_OPEN);
+	file_chooser_button = g_object_ref_sink (_tmp23_);
+	gtk_box_pack_start ((GtkBox*) hbox, (GtkWidget*) file_chooser_button, TRUE, TRUE, (guint) 0);
 	gtk_widget_show_all ((GtkWidget*) content_area);
-	{
-		gtk_file_chooser_set_file ((GtkFileChooser*) file_chooser_button, (*project).main_file, &_inner_error_);
-		if (_inner_error_ != NULL) {
-			goto __catch27_g_error;
-		}
+	gtk_file_chooser_set_file ((GtkFileChooser*) file_chooser_button, (*project).main_file, &_inner_error_);
+	if (_inner_error_ != NULL) {
+		goto __catch27_g_error;
 	}
 	goto __finally27;
 	__catch27_g_error:
@@ -401,9 +534,7 @@ gboolean project_dialogs_configure_project (GtkWindow* main_window, gint project
 		GError * e;
 		e = _inner_error_;
 		_inner_error_ = NULL;
-		{
-			_g_error_free0 (e);
-		}
+		_g_error_free0 (e);
 	}
 	__finally27:
 	if (_inner_error_ != NULL) {
@@ -420,22 +551,35 @@ gboolean project_dialogs_configure_project (GtkWindow* main_window, gint project
 	}
 	ret = FALSE;
 	while (TRUE) {
+		gint _tmp24_;
+		GFile* _tmp25_ = NULL;
+		GFile* _tmp26_;
 		GFile* main_file;
-		Projects* _tmp7_;
-		if (!(gtk_dialog_run (dialog) == GTK_RESPONSE_OK)) {
+		gboolean _tmp27_;
+		Projects* _tmp28_ = NULL;
+		Projects* _tmp29_;
+		gboolean _tmp30_;
+		_tmp24_ = gtk_dialog_run (dialog);
+		if (!(_tmp24_ == GTK_RESPONSE_OK)) {
 			break;
 		}
-		main_file = _g_object_ref0 (gtk_file_chooser_get_file ((GtkFileChooser*) file_chooser_button));
+		_tmp25_ = gtk_file_chooser_get_file ((GtkFileChooser*) file_chooser_button);
+		_tmp26_ = _g_object_ref0 (_tmp25_);
+		main_file = _tmp26_;
 		if (main_file == NULL) {
 			_g_object_unref0 (main_file);
 			continue;
 		}
-		if (!project_dialogs_main_file_is_in_directory ((GtkWindow*) dialog, main_file, (*project).directory)) {
+		_tmp27_ = project_dialogs_main_file_is_in_directory ((GtkWindow*) dialog, main_file, (*project).directory);
+		if (!_tmp27_) {
 			_g_object_unref0 (main_file);
 			continue;
 		}
-		ret = projects_change_main_file (_tmp7_ = projects_get_default (), project_id, main_file);
-		_projects_unref0 (_tmp7_);
+		_tmp28_ = projects_get_default ();
+		_tmp29_ = _tmp28_;
+		_tmp30_ = projects_change_main_file (_tmp29_, project_id, main_file);
+		ret = _tmp30_;
+		_projects_unref0 (_tmp29_);
 		_g_object_unref0 (main_file);
 		break;
 	}
@@ -464,46 +608,80 @@ GType project_dialogs_project_column_get_type (void) {
 }
 
 
-static void _lambda66_ (Block10Data* _data10_) {
+static Block10Data* block10_data_ref (Block10Data* _data10_) {
+	g_atomic_int_inc (&_data10_->_ref_count_);
+	return _data10_;
+}
+
+
+static void block10_data_unref (Block10Data* _data10_) {
+	if (g_atomic_int_dec_and_test (&_data10_->_ref_count_)) {
+		_g_object_unref0 (_data10_->treeview);
+		_g_object_unref0 (_data10_->store);
+		_g_object_unref0 (_data10_->dialog);
+		g_slice_free (Block10Data, _data10_);
+	}
+}
+
+
+static void _lambda69_ (Block10Data* _data10_) {
+	gint _tmp0_;
 	gint i;
-	gboolean _tmp0_ = FALSE;
-	i = utils_get_selected_row (_data10_->treeview, NULL);
+	gboolean _tmp1_ = FALSE;
+	_tmp0_ = utils_get_selected_row (_data10_->treeview, NULL);
+	i = _tmp0_;
 	if (i != (-1)) {
-		_tmp0_ = project_dialogs_configure_project ((GtkWindow*) _data10_->dialog, i);
+		gboolean _tmp2_;
+		_tmp2_ = project_dialogs_configure_project ((GtkWindow*) _data10_->dialog, i);
+		_tmp1_ = _tmp2_;
 	} else {
-		_tmp0_ = FALSE;
+		_tmp1_ = FALSE;
 	}
-	if (_tmp0_) {
+	if (_tmp1_) {
 		project_dialogs_update_model (_data10_->store);
 	}
 }
 
 
-static void __lambda66__gtk_button_clicked (GtkButton* _sender, gpointer self) {
-	_lambda66_ (self);
+static void __lambda69__gtk_button_clicked (GtkButton* _sender, gpointer self) {
+	_lambda69_ (self);
 }
 
 
-static void _lambda67_ (Block10Data* _data10_) {
+static void _lambda70_ (Block10Data* _data10_) {
 	GtkTreeIter iter = {0};
+	GtkTreeIter _tmp0_ = {0};
+	gint _tmp1_;
 	gint i;
-	char* directory;
+	gchar* directory = NULL;
+	GtkTreeModel* _tmp2_;
 	GtkTreeModel* model;
+	const gchar* _tmp3_ = NULL;
+	GtkMessageDialog* _tmp4_ = NULL;
 	GtkDialog* delete_dialog;
-	i = utils_get_selected_row (_data10_->treeview, &iter);
+	gint _tmp5_;
+	_tmp1_ = utils_get_selected_row (_data10_->treeview, &_tmp0_);
+	iter = _tmp0_;
+	i = _tmp1_;
 	if (i == (-1)) {
 		return;
 	}
-	directory = NULL;
-	model = _g_object_ref0 (GTK_TREE_MODEL (_data10_->store));
+	_tmp2_ = _g_object_ref0 (GTK_TREE_MODEL (_data10_->store));
+	model = _tmp2_;
 	gtk_tree_model_get (model, &iter, PROJECT_DIALOGS_PROJECT_COLUMN_DIRECTORY, &directory, -1, -1);
-	delete_dialog = (GtkDialog*) g_object_ref_sink ((GtkMessageDialog*) gtk_message_dialog_new ((GtkWindow*) _data10_->dialog, GTK_DIALOG_DESTROY_WITH_PARENT, GTK_MESSAGE_QUESTION, GTK_BUTTONS_NONE, _ ("Do you really want to delete the project \"%s\"?"), directory));
+	_tmp3_ = _ ("Do you really want to delete the project \"%s\"?");
+	_tmp4_ = (GtkMessageDialog*) gtk_message_dialog_new ((GtkWindow*) _data10_->dialog, GTK_DIALOG_DESTROY_WITH_PARENT, GTK_MESSAGE_QUESTION, GTK_BUTTONS_NONE, _tmp3_, directory);
+	delete_dialog = (GtkDialog*) g_object_ref_sink (_tmp4_);
 	gtk_dialog_add_buttons (delete_dialog, GTK_STOCK_CANCEL, GTK_RESPONSE_CANCEL, GTK_STOCK_DELETE, GTK_RESPONSE_YES, NULL);
-	if (gtk_dialog_run (delete_dialog) == GTK_RESPONSE_YES) {
-		Projects* _tmp0_;
+	_tmp5_ = gtk_dialog_run (delete_dialog);
+	if (_tmp5_ == GTK_RESPONSE_YES) {
+		Projects* _tmp6_ = NULL;
+		Projects* _tmp7_;
 		gtk_list_store_remove (_data10_->store, &iter);
-		projects_delete (_tmp0_ = projects_get_default (), i);
-		_projects_unref0 (_tmp0_);
+		_tmp6_ = projects_get_default ();
+		_tmp7_ = _tmp6_;
+		projects_delete (_tmp7_, i);
+		_projects_unref0 (_tmp7_);
 	}
 	gtk_object_destroy ((GtkObject*) delete_dialog);
 	_g_object_unref0 (delete_dialog);
@@ -512,26 +690,41 @@ static void _lambda67_ (Block10Data* _data10_) {
 }
 
 
-static void __lambda67__gtk_button_clicked (GtkButton* _sender, gpointer self) {
-	_lambda67_ (self);
+static void __lambda70__gtk_button_clicked (GtkButton* _sender, gpointer self) {
+	_lambda70_ (self);
 }
 
 
-static void _lambda68_ (Block10Data* _data10_) {
+static void _lambda71_ (Block10Data* _data10_) {
+	const gchar* _tmp0_ = NULL;
+	GtkMessageDialog* _tmp1_ = NULL;
 	GtkDialog* clear_dialog;
+	const gchar* _tmp2_ = NULL;
+	GtkButton* _tmp3_ = NULL;
 	GtkButton* button;
+	GtkImage* _tmp4_ = NULL;
 	GtkImage* img;
-	clear_dialog = (GtkDialog*) g_object_ref_sink ((GtkMessageDialog*) gtk_message_dialog_new ((GtkWindow*) _data10_->dialog, GTK_DIALOG_DESTROY_WITH_PARENT, GTK_MESSAGE_QUESTION, GTK_BUTTONS_NONE, _ ("Do you really want to clear all projects?")));
+	gint _tmp5_;
+	_tmp0_ = _ ("Do you really want to clear all projects?");
+	_tmp1_ = (GtkMessageDialog*) gtk_message_dialog_new ((GtkWindow*) _data10_->dialog, GTK_DIALOG_DESTROY_WITH_PARENT, GTK_MESSAGE_QUESTION, GTK_BUTTONS_NONE, _tmp0_);
+	clear_dialog = (GtkDialog*) g_object_ref_sink (_tmp1_);
 	gtk_dialog_add_button (clear_dialog, GTK_STOCK_CANCEL, (gint) GTK_RESPONSE_CANCEL);
-	button = g_object_ref_sink ((GtkButton*) gtk_button_new_with_label (_ ("Clear All")));
-	img = g_object_ref_sink ((GtkImage*) gtk_image_new_from_stock (GTK_STOCK_CLEAR, GTK_ICON_SIZE_BUTTON));
+	_tmp2_ = _ ("Clear All");
+	_tmp3_ = (GtkButton*) gtk_button_new_with_label (_tmp2_);
+	button = g_object_ref_sink (_tmp3_);
+	_tmp4_ = (GtkImage*) gtk_image_new_from_stock (GTK_STOCK_CLEAR, GTK_ICON_SIZE_BUTTON);
+	img = g_object_ref_sink (_tmp4_);
 	gtk_button_set_image (button, (GtkWidget*) img);
 	gtk_widget_show_all ((GtkWidget*) button);
 	gtk_dialog_add_action_widget (clear_dialog, (GtkWidget*) button, (gint) GTK_RESPONSE_YES);
-	if (gtk_dialog_run (clear_dialog) == GTK_RESPONSE_YES) {
-		Projects* _tmp0_;
-		projects_clear_all (_tmp0_ = projects_get_default ());
-		_projects_unref0 (_tmp0_);
+	_tmp5_ = gtk_dialog_run (clear_dialog);
+	if (_tmp5_ == GTK_RESPONSE_YES) {
+		Projects* _tmp6_ = NULL;
+		Projects* _tmp7_;
+		_tmp6_ = projects_get_default ();
+		_tmp7_ = _tmp6_;
+		projects_clear_all (_tmp7_);
+		_projects_unref0 (_tmp7_);
 		gtk_list_store_clear (_data10_->store);
 	}
 	gtk_object_destroy ((GtkObject*) clear_dialog);
@@ -541,89 +734,119 @@ static void _lambda68_ (Block10Data* _data10_) {
 }
 
 
-static void __lambda68__gtk_button_clicked (GtkButton* _sender, gpointer self) {
-	_lambda68_ (self);
-}
-
-
-static Block10Data* block10_data_ref (Block10Data* _data10_) {
-	g_atomic_int_inc (&_data10_->_ref_count_);
-	return _data10_;
-}
-
-
-static void block10_data_unref (Block10Data* _data10_) {
-	if (g_atomic_int_dec_and_test (&_data10_->_ref_count_)) {
-		_g_object_unref0 (_data10_->treeview);
-		_g_object_unref0 (_data10_->store);
-		_g_object_unref0 (_data10_->dialog);
-		g_slice_free (Block10Data, _data10_);
-	}
+static void __lambda71__gtk_button_clicked (GtkButton* _sender, gpointer self) {
+	_lambda71_ (self);
 }
 
 
 void project_dialogs_manage_projects (MainWindow* main_window) {
 	Block10Data* _data10_;
+	const gchar* _tmp0_ = NULL;
+	GtkDialog* _tmp1_ = NULL;
+	GtkWidget* _tmp2_ = NULL;
+	GtkVBox* _tmp3_;
 	GtkVBox* content_area;
+	GtkListStore* _tmp4_ = NULL;
+	GtkTreeView* _tmp5_ = NULL;
+	GtkTreeViewColumn* _tmp6_ = NULL;
 	GtkTreeViewColumn* column;
+	const gchar* _tmp7_ = NULL;
+	GtkCellRendererPixbuf* _tmp8_ = NULL;
 	GtkCellRendererPixbuf* pixbuf_renderer;
+	GtkCellRendererText* _tmp9_ = NULL;
 	GtkCellRendererText* text_renderer;
-	GtkTreeViewColumn* _tmp0_;
-	GtkCellRendererPixbuf* _tmp1_;
-	GtkCellRendererText* _tmp2_;
+	GtkTreeViewColumn* _tmp10_ = NULL;
+	const gchar* _tmp11_ = NULL;
+	GtkCellRendererPixbuf* _tmp12_ = NULL;
+	GtkCellRendererText* _tmp13_ = NULL;
+	GtkTreeSelection* _tmp14_ = NULL;
+	GtkTreeSelection* _tmp15_;
 	GtkTreeSelection* select;
+	GtkWidget* _tmp16_ = NULL;
 	GtkWidget* sw;
+	GtkHBox* _tmp17_ = NULL;
 	GtkHBox* hbox;
+	GtkButton* _tmp18_ = NULL;
 	GtkButton* edit_button;
+	GtkButton* _tmp19_ = NULL;
 	GtkButton* delete_button;
+	const gchar* _tmp20_ = NULL;
+	GtkButton* _tmp21_ = NULL;
 	GtkButton* clear_all_button;
+	GtkImage* _tmp22_ = NULL;
 	GtkImage* image;
 	g_return_if_fail (main_window != NULL);
 	_data10_ = g_slice_new0 (Block10Data);
 	_data10_->_ref_count_ = 1;
-	_data10_->dialog = g_object_ref_sink ((GtkDialog*) gtk_dialog_new_with_buttons (_ ("Manage Projects"), (GtkWindow*) main_window, GTK_DIALOG_DESTROY_WITH_PARENT, GTK_STOCK_CLOSE, GTK_RESPONSE_OK, NULL, NULL));
-	content_area = _g_object_ref0 (GTK_VBOX (gtk_dialog_get_content_area (_data10_->dialog)));
-	_data10_->store = gtk_list_store_new ((gint) PROJECT_DIALOGS_PROJECT_COLUMN_N_COLUMNS, G_TYPE_STRING, G_TYPE_STRING);
+	_tmp0_ = _ ("Manage Projects");
+	_tmp1_ = (GtkDialog*) gtk_dialog_new_with_buttons (_tmp0_, (GtkWindow*) main_window, GTK_DIALOG_DESTROY_WITH_PARENT, GTK_STOCK_CLOSE, GTK_RESPONSE_OK, NULL, NULL);
+	_data10_->dialog = g_object_ref_sink (_tmp1_);
+	_tmp2_ = gtk_dialog_get_content_area (_data10_->dialog);
+	_tmp3_ = _g_object_ref0 (GTK_VBOX (_tmp2_));
+	content_area = _tmp3_;
+	_tmp4_ = gtk_list_store_new ((gint) PROJECT_DIALOGS_PROJECT_COLUMN_N_COLUMNS, G_TYPE_STRING, G_TYPE_STRING);
+	_data10_->store = _tmp4_;
 	project_dialogs_update_model (_data10_->store);
-	_data10_->treeview = g_object_ref_sink ((GtkTreeView*) gtk_tree_view_new_with_model ((GtkTreeModel*) _data10_->store));
+	_tmp5_ = (GtkTreeView*) gtk_tree_view_new_with_model ((GtkTreeModel*) _data10_->store);
+	_data10_->treeview = g_object_ref_sink (_tmp5_);
 	gtk_widget_set_size_request ((GtkWidget*) _data10_->treeview, 400, 150);
 	gtk_tree_view_set_rules_hint (_data10_->treeview, TRUE);
-	column = g_object_ref_sink (gtk_tree_view_column_new ());
+	_tmp6_ = gtk_tree_view_column_new ();
+	column = g_object_ref_sink (_tmp6_);
 	gtk_tree_view_append_column (_data10_->treeview, column);
-	gtk_tree_view_column_set_title (column, _ ("Directory"));
-	pixbuf_renderer = g_object_ref_sink ((GtkCellRendererPixbuf*) gtk_cell_renderer_pixbuf_new ());
+	_tmp7_ = _ ("Directory");
+	gtk_tree_view_column_set_title (column, _tmp7_);
+	_tmp8_ = (GtkCellRendererPixbuf*) gtk_cell_renderer_pixbuf_new ();
+	pixbuf_renderer = g_object_ref_sink (_tmp8_);
 	g_object_set (pixbuf_renderer, "stock-id", GTK_STOCK_DIRECTORY, NULL);
 	gtk_cell_layout_pack_start ((GtkCellLayout*) column, (GtkCellRenderer*) pixbuf_renderer, FALSE);
-	text_renderer = g_object_ref_sink ((GtkCellRendererText*) gtk_cell_renderer_text_new ());
+	_tmp9_ = (GtkCellRendererText*) gtk_cell_renderer_text_new ();
+	text_renderer = g_object_ref_sink (_tmp9_);
 	gtk_cell_layout_pack_start ((GtkCellLayout*) column, (GtkCellRenderer*) text_renderer, TRUE);
 	gtk_tree_view_column_set_attributes (column, (GtkCellRenderer*) text_renderer, "text", PROJECT_DIALOGS_PROJECT_COLUMN_DIRECTORY, NULL, NULL);
-	column = (_tmp0_ = g_object_ref_sink (gtk_tree_view_column_new ()), _g_object_unref0 (column), _tmp0_);
+	_tmp10_ = gtk_tree_view_column_new ();
+	_g_object_unref0 (column);
+	column = g_object_ref_sink (_tmp10_);
 	gtk_tree_view_append_column (_data10_->treeview, column);
-	gtk_tree_view_column_set_title (column, _ ("Main File"));
-	pixbuf_renderer = (_tmp1_ = g_object_ref_sink ((GtkCellRendererPixbuf*) gtk_cell_renderer_pixbuf_new ()), _g_object_unref0 (pixbuf_renderer), _tmp1_);
+	_tmp11_ = _ ("Main File");
+	gtk_tree_view_column_set_title (column, _tmp11_);
+	_tmp12_ = (GtkCellRendererPixbuf*) gtk_cell_renderer_pixbuf_new ();
+	_g_object_unref0 (pixbuf_renderer);
+	pixbuf_renderer = g_object_ref_sink (_tmp12_);
 	g_object_set (pixbuf_renderer, "stock-id", GTK_STOCK_FILE, NULL);
 	gtk_cell_layout_pack_start ((GtkCellLayout*) column, (GtkCellRenderer*) pixbuf_renderer, FALSE);
-	text_renderer = (_tmp2_ = g_object_ref_sink ((GtkCellRendererText*) gtk_cell_renderer_text_new ()), _g_object_unref0 (text_renderer), _tmp2_);
+	_tmp13_ = (GtkCellRendererText*) gtk_cell_renderer_text_new ();
+	_g_object_unref0 (text_renderer);
+	text_renderer = g_object_ref_sink (_tmp13_);
 	gtk_cell_layout_pack_start ((GtkCellLayout*) column, (GtkCellRenderer*) text_renderer, TRUE);
 	gtk_tree_view_column_set_attributes (column, (GtkCellRenderer*) text_renderer, "text", PROJECT_DIALOGS_PROJECT_COLUMN_MAIN_FILE, NULL, NULL);
-	select = _g_object_ref0 (gtk_tree_view_get_selection (_data10_->treeview));
+	_tmp14_ = gtk_tree_view_get_selection (_data10_->treeview);
+	_tmp15_ = _g_object_ref0 (_tmp14_);
+	select = _tmp15_;
 	gtk_tree_selection_set_mode (select, GTK_SELECTION_SINGLE);
-	sw = utils_add_scrollbar ((GtkWidget*) _data10_->treeview);
-	gtk_box_pack_start ((GtkBox*) content_area, sw, TRUE, TRUE, 0);
-	hbox = g_object_ref_sink ((GtkHBox*) gtk_hbox_new (FALSE, 5));
+	_tmp16_ = utils_add_scrollbar ((GtkWidget*) _data10_->treeview);
+	sw = _tmp16_;
+	gtk_box_pack_start ((GtkBox*) content_area, sw, TRUE, TRUE, (guint) 0);
+	_tmp17_ = (GtkHBox*) gtk_hbox_new (FALSE, 5);
+	hbox = g_object_ref_sink (_tmp17_);
 	gtk_box_pack_start ((GtkBox*) content_area, (GtkWidget*) hbox, FALSE, FALSE, (guint) 5);
-	edit_button = g_object_ref_sink ((GtkButton*) gtk_button_new_from_stock (GTK_STOCK_PROPERTIES));
-	delete_button = g_object_ref_sink ((GtkButton*) gtk_button_new_from_stock (GTK_STOCK_DELETE));
-	clear_all_button = g_object_ref_sink ((GtkButton*) gtk_button_new_with_label (_ ("Clear All")));
-	image = g_object_ref_sink ((GtkImage*) gtk_image_new_from_stock (GTK_STOCK_CLEAR, GTK_ICON_SIZE_MENU));
+	_tmp18_ = (GtkButton*) gtk_button_new_from_stock (GTK_STOCK_PROPERTIES);
+	edit_button = g_object_ref_sink (_tmp18_);
+	_tmp19_ = (GtkButton*) gtk_button_new_from_stock (GTK_STOCK_DELETE);
+	delete_button = g_object_ref_sink (_tmp19_);
+	_tmp20_ = _ ("Clear All");
+	_tmp21_ = (GtkButton*) gtk_button_new_with_label (_tmp20_);
+	clear_all_button = g_object_ref_sink (_tmp21_);
+	_tmp22_ = (GtkImage*) gtk_image_new_from_stock (GTK_STOCK_CLEAR, GTK_ICON_SIZE_MENU);
+	image = g_object_ref_sink (_tmp22_);
 	gtk_button_set_image (clear_all_button, (GtkWidget*) image);
-	gtk_box_pack_start ((GtkBox*) hbox, (GtkWidget*) edit_button, TRUE, TRUE, 0);
-	gtk_box_pack_start ((GtkBox*) hbox, (GtkWidget*) delete_button, TRUE, TRUE, 0);
-	gtk_box_pack_start ((GtkBox*) hbox, (GtkWidget*) clear_all_button, TRUE, TRUE, 0);
+	gtk_box_pack_start ((GtkBox*) hbox, (GtkWidget*) edit_button, TRUE, TRUE, (guint) 0);
+	gtk_box_pack_start ((GtkBox*) hbox, (GtkWidget*) delete_button, TRUE, TRUE, (guint) 0);
+	gtk_box_pack_start ((GtkBox*) hbox, (GtkWidget*) clear_all_button, TRUE, TRUE, (guint) 0);
 	gtk_widget_show_all ((GtkWidget*) content_area);
-	g_signal_connect_data (edit_button, "clicked", (GCallback) __lambda66__gtk_button_clicked, block10_data_ref (_data10_), (GClosureNotify) block10_data_unref, 0);
-	g_signal_connect_data (delete_button, "clicked", (GCallback) __lambda67__gtk_button_clicked, block10_data_ref (_data10_), (GClosureNotify) block10_data_unref, 0);
-	g_signal_connect_data (clear_all_button, "clicked", (GCallback) __lambda68__gtk_button_clicked, block10_data_ref (_data10_), (GClosureNotify) block10_data_unref, 0);
+	g_signal_connect_data (edit_button, "clicked", (GCallback) __lambda69__gtk_button_clicked, block10_data_ref (_data10_), (GClosureNotify) block10_data_unref, 0);
+	g_signal_connect_data (delete_button, "clicked", (GCallback) __lambda70__gtk_button_clicked, block10_data_ref (_data10_), (GClosureNotify) block10_data_unref, 0);
+	g_signal_connect_data (clear_all_button, "clicked", (GCallback) __lambda71__gtk_button_clicked, block10_data_ref (_data10_), (GClosureNotify) block10_data_unref, 0);
 	gtk_dialog_run (_data10_->dialog);
 	gtk_object_destroy ((GtkObject*) _data10_->dialog);
 	_g_object_unref0 (image);
@@ -638,20 +861,27 @@ void project_dialogs_manage_projects (MainWindow* main_window) {
 	_g_object_unref0 (column);
 	_g_object_unref0 (content_area);
 	block10_data_unref (_data10_);
+	_data10_ = NULL;
 }
 
 
 gboolean project_dialogs_main_file_is_in_directory (GtkWindow* window, GFile* main_file, GFile* directory) {
 	gboolean result = FALSE;
+	gboolean _tmp0_;
+	const gchar* _tmp1_ = NULL;
+	GtkMessageDialog* _tmp2_ = NULL;
 	GtkDialog* error_dialog;
 	g_return_val_if_fail (window != NULL, FALSE);
 	g_return_val_if_fail (main_file != NULL, FALSE);
 	g_return_val_if_fail (directory != NULL, FALSE);
-	if (g_file_has_prefix (main_file, directory)) {
+	_tmp0_ = g_file_has_prefix (main_file, directory);
+	if (_tmp0_) {
 		result = TRUE;
 		return result;
 	}
-	error_dialog = (GtkDialog*) g_object_ref_sink ((GtkMessageDialog*) gtk_message_dialog_new (window, GTK_DIALOG_DESTROY_WITH_PARENT, GTK_MESSAGE_ERROR, GTK_BUTTONS_OK, _ ("The Main File is not in the directory.")));
+	_tmp1_ = _ ("The Main File is not in the directory.");
+	_tmp2_ = (GtkMessageDialog*) gtk_message_dialog_new (window, GTK_DIALOG_DESTROY_WITH_PARENT, GTK_MESSAGE_ERROR, GTK_BUTTONS_OK, _tmp1_);
+	error_dialog = (GtkDialog*) g_object_ref_sink (_tmp2_);
 	gtk_dialog_run (error_dialog);
 	gtk_object_destroy ((GtkObject*) error_dialog);
 	result = FALSE;
@@ -660,22 +890,16 @@ gboolean project_dialogs_main_file_is_in_directory (GtkWindow* window, GFile* ma
 }
 
 
-static glong string_get_length (const char* self) {
-	glong result;
-	g_return_val_if_fail (self != NULL, 0L);
-	result = g_utf8_strlen (self, (gssize) (-1));
-	return result;
-}
-
-
-static char* string_slice (const char* self, glong start, glong end) {
-	char* result = NULL;
+static gchar* string_slice (const gchar* self, glong start, glong end) {
+	gchar* result = NULL;
+	gint _tmp0_;
 	glong string_length;
-	gboolean _tmp0_ = FALSE;
 	gboolean _tmp1_ = FALSE;
-	const char* start_string;
+	gboolean _tmp2_ = FALSE;
+	gchar* _tmp3_ = NULL;
 	g_return_val_if_fail (self != NULL, NULL);
-	string_length = string_get_length (self);
+	_tmp0_ = strlen (self);
+	string_length = (glong) _tmp0_;
 	if (start < 0) {
 		start = string_length + start;
 	}
@@ -683,55 +907,98 @@ static char* string_slice (const char* self, glong start, glong end) {
 		end = string_length + end;
 	}
 	if (start >= 0) {
-		_tmp0_ = start <= string_length;
+		_tmp1_ = start <= string_length;
 	} else {
-		_tmp0_ = FALSE;
+		_tmp1_ = FALSE;
 	}
-	g_return_val_if_fail (_tmp0_, NULL);
+	g_return_val_if_fail (_tmp1_, NULL);
 	if (end >= 0) {
-		_tmp1_ = end <= string_length;
+		_tmp2_ = end <= string_length;
 	} else {
-		_tmp1_ = FALSE;
+		_tmp2_ = FALSE;
 	}
-	g_return_val_if_fail (_tmp1_, NULL);
+	g_return_val_if_fail (_tmp2_, NULL);
 	g_return_val_if_fail (start <= end, NULL);
-	start_string = g_utf8_offset_to_pointer (self, start);
-	result = g_strndup (start_string, ((gchar*) g_utf8_offset_to_pointer (start_string, end - start)) - ((gchar*) start_string));
+	_tmp3_ = g_strndup (((gchar*) self) + start, (gsize) (end - start));
+	result = _tmp3_;
 	return result;
 }
 
 
 void project_dialogs_update_model (GtkListStore* model) {
-	Projects* _tmp0_;
-	GeeLinkedList* _tmp1_;
+	Projects* _tmp0_ = NULL;
+	Projects* _tmp1_;
+	GeeLinkedList* _tmp2_ = NULL;
+	GeeLinkedList* _tmp3_;
 	GeeLinkedList* projects;
 	g_return_if_fail (model != NULL);
 	gtk_list_store_clear (model);
-	projects = (_tmp1_ = projects_get_projects (_tmp0_ = projects_get_default ()), _projects_unref0 (_tmp0_), _tmp1_);
+	_tmp0_ = projects_get_default ();
+	_tmp1_ = _tmp0_;
+	_tmp2_ = projects_get_projects (_tmp1_);
+	_tmp3_ = _tmp2_;
+	_projects_unref0 (_tmp1_);
+	projects = _tmp3_;
 	{
-		GeeIterator* _project_it;
-		_project_it = gee_abstract_collection_iterator ((GeeAbstractCollection*) projects);
+		GeeLinkedList* _tmp4_;
+		GeeLinkedList* _project_list;
+		gint _tmp5_;
+		gint _project_size;
+		gint _project_index;
+		_tmp4_ = _g_object_ref0 (projects);
+		_project_list = _tmp4_;
+		_tmp5_ = gee_collection_get_size ((GeeCollection*) _project_list);
+		_project_size = _tmp5_;
+		_project_index = -1;
 		while (TRUE) {
-			Project* _tmp2_;
-			Project _tmp3_ = {0};
-			Project _tmp4_;
+			gpointer _tmp6_ = NULL;
+			Project* _tmp7_;
+			Project _tmp8_;
+			Project _tmp9_ = {0};
+			Project _tmp10_;
 			Project project;
-			char* uri_directory;
-			char* uri_main_file;
-			char* _tmp5_;
-			char* _tmp6_;
-			char* dir;
-			char* main_file;
+			gchar* _tmp11_ = NULL;
+			gchar* uri_directory;
+			gchar* _tmp12_ = NULL;
+			gchar* uri_main_file;
+			gchar* _tmp13_ = NULL;
+			gchar* _tmp14_;
+			gchar* _tmp15_;
+			gchar* _tmp16_;
+			gchar* dir;
+			gint _tmp17_;
+			gint _tmp18_;
+			gchar* _tmp19_ = NULL;
+			gchar* main_file;
 			GtkTreeIter iter = {0};
-			if (!gee_iterator_next (_project_it)) {
+			GtkTreeIter _tmp20_ = {0};
+			_project_index = _project_index + 1;
+			if (!(_project_index < _project_size)) {
 				break;
 			}
-			project = (_tmp4_ = (project_copy (_tmp2_ = (Project*) gee_iterator_get (_project_it), &_tmp3_), _tmp3_), _project_free0 (_tmp2_), _tmp4_);
-			uri_directory = g_file_get_parse_name (project.directory);
-			uri_main_file = g_file_get_parse_name (project.main_file);
-			dir = (_tmp6_ = g_strconcat (_tmp5_ = utils_replace_home_dir_with_tilde (uri_directory), "/", NULL), _g_free0 (_tmp5_), _tmp6_);
-			main_file = string_slice (uri_main_file, string_get_length (uri_directory) + 1, string_get_length (uri_main_file));
-			gtk_list_store_append (model, &iter);
+			_tmp6_ = gee_abstract_list_get ((GeeAbstractList*) _project_list, _project_index);
+			_tmp7_ = (Project*) _tmp6_;
+			project_copy (_tmp7_, &_tmp9_);
+			_tmp8_ = _tmp9_;
+			_tmp10_ = _tmp8_;
+			_project_free0 (_tmp7_);
+			project = _tmp10_;
+			_tmp11_ = g_file_get_parse_name (project.directory);
+			uri_directory = _tmp11_;
+			_tmp12_ = g_file_get_parse_name (project.main_file);
+			uri_main_file = _tmp12_;
+			_tmp13_ = utils_replace_home_dir_with_tilde (uri_directory);
+			_tmp14_ = _tmp13_;
+			_tmp15_ = g_strconcat (_tmp14_, "/", NULL);
+			_tmp16_ = _tmp15_;
+			_g_free0 (_tmp14_);
+			dir = _tmp16_;
+			_tmp17_ = strlen (uri_directory);
+			_tmp18_ = strlen (uri_main_file);
+			_tmp19_ = string_slice (uri_main_file, (glong) (_tmp17_ + 1), (glong) _tmp18_);
+			main_file = _tmp19_;
+			gtk_list_store_append (model, &_tmp20_);
+			iter = _tmp20_;
 			gtk_list_store_set (model, &iter, PROJECT_DIALOGS_PROJECT_COLUMN_DIRECTORY, dir, PROJECT_DIALOGS_PROJECT_COLUMN_MAIN_FILE, main_file, -1, -1);
 			_g_free0 (main_file);
 			_g_free0 (dir);
@@ -739,10 +1006,9 @@ void project_dialogs_update_model (GtkListStore* model) {
 			_g_free0 (uri_directory);
 			project_destroy (&project);
 		}
-		_g_object_unref0 (_project_it);
+		_g_object_unref0 (_project_list);
 	}
 }
 
 
 
-
diff --git a/src/C/projects.c b/src/C/projects.c
index 30d561d..391030a 100644
--- a/src/C/projects.c
+++ b/src/C/projects.c
@@ -1,4 +1,4 @@
-/* projects.c generated by valac 0.10.3, the Vala compiler
+/* projects.c generated by valac 0.12.1, the Vala compiler
  * generated from projects.vala, do not modify */
 
 /*
@@ -81,7 +81,7 @@ typedef struct _MainWindowClass MainWindowClass;
 
 typedef struct _Document Document;
 typedef struct _DocumentClass DocumentClass;
-#define __g_list_free_g_object_unref0(var) ((var == NULL) ? NULL : (var = (_g_list_free_g_object_unref (var), NULL)))
+#define __g_list_free__g_object_unref0_0(var) ((var == NULL) ? NULL : (var = (_g_list_free__g_object_unref0_ (var), NULL)))
 typedef struct _ParamSpecProjects ParamSpecProjects;
 
 struct _Project {
@@ -110,9 +110,9 @@ struct _ParamSpecProjects {
 };
 
 
+static gpointer projects_parent_class = NULL;
 static Projects* projects_instance;
 static Projects* projects_instance = NULL;
-static gpointer projects_parent_class = NULL;
 
 GType project_get_type (void) G_GNUC_CONST;
 Project* project_dup (const Project* self);
@@ -133,8 +133,8 @@ enum  {
 static Projects* projects_new (void);
 static Projects* projects_construct (GType object_type);
 static GFile* projects_get_xml_file (Projects* self);
-static void projects_parser_start (Projects* self, GMarkupParseContext* context, const char* name, char** attr_names, int attr_names_length1, char** attr_values, int attr_values_length1, GError** error);
-static void _projects_parser_start_gmarkup_parser_start_element_func (GMarkupParseContext* context, const char* element_name, char** attribute_names, char** attribute_values, gpointer self, GError** error);
+static void projects_parser_start (Projects* self, GMarkupParseContext* context, const gchar* name, gchar** attr_names, int attr_names_length1, gchar** attr_values, int attr_values_length1, GError** error);
+static void _projects_parser_start_gmarkup_parser_start_element_func (GMarkupParseContext* context, const gchar* element_name, gchar** attribute_names, gchar** attribute_values, gpointer self, GError** error);
 static void projects_update_all_documents (Projects* self);
 static void projects_update_all_menus (Projects* self);
 Projects* projects_get_default (void);
@@ -152,7 +152,8 @@ GList* application_get_documents (Application* self);
 gint document_get_project_id (Document* self);
 GFile* document_get_location (Document* self);
 void document_set_project_id (Document* self, gint value);
-static void _g_list_free_g_object_unref (GList* self);
+static void _g_object_unref0_ (gpointer var);
+static void _g_list_free__g_object_unref0_ (GList* self);
 gboolean projects_change_main_file (Projects* self, gint num, GFile* new_main_file);
 void projects_delete (Projects* self, gint num);
 void projects_clear_all (Projects* self);
@@ -162,7 +163,6 @@ static void projects_finalize (Projects* obj);
 static gint _vala_array_length (gpointer array);
 
 
-
 static gpointer _g_object_ref0 (gpointer self) {
 	return self ? g_object_ref (self) : NULL;
 }
@@ -175,8 +175,8 @@ void project_copy (const Project* self, Project* dest) {
 
 
 void project_destroy (Project* self) {
-	_g_object_unref0 (self->directory);
-	_g_object_unref0 (self->main_file);
+	_g_object_unref0 ((*self).directory);
+	_g_object_unref0 ((*self).main_file);
 }
 
 
@@ -205,59 +205,68 @@ GType project_get_type (void) {
 }
 
 
-static void _projects_parser_start_gmarkup_parser_start_element_func (GMarkupParseContext* context, const char* element_name, char** attribute_names, char** attribute_values, gpointer self, GError** error) {
+static void _projects_parser_start_gmarkup_parser_start_element_func (GMarkupParseContext* context, const gchar* element_name, gchar** attribute_names, gchar** attribute_values, gpointer self, GError** error) {
 	projects_parser_start (self, context, element_name, attribute_names, _vala_array_length (attribute_names), attribute_values, _vala_array_length (attribute_values), error);
 }
 
 
 static Projects* projects_construct (GType object_type) {
-	Projects* self = (Projects*) g_type_create_instance (object_type);
-	GeeLinkedList* _tmp0_;
+	Projects* self = NULL;
+	GeeLinkedList* _tmp0_ = NULL;
+	GFile* _tmp1_ = NULL;
 	GFile* file;
+	gboolean _tmp2_;
+	gchar* contents = NULL;
+	gchar* _tmp3_ = NULL;
+	GMarkupParser _tmp4_ = {0};
+	GMarkupParser parser;
+	GMarkupParseContext* _tmp5_ = NULL;
+	GMarkupParseContext* context;
 	GError * _inner_error_ = NULL;
-	self->priv->projects = (_tmp0_ = gee_linked_list_new (TYPE_PROJECT, (GBoxedCopyFunc) project_dup, project_free, NULL), _g_object_unref0 (self->priv->projects), _tmp0_);
-	file = projects_get_xml_file (self);
-	if (!g_file_query_exists (file, NULL)) {
+	self = (Projects*) g_type_create_instance (object_type);
+	_tmp0_ = gee_linked_list_new (TYPE_PROJECT, (GBoxedCopyFunc) project_dup, project_free, NULL);
+	_g_object_unref0 (self->priv->projects);
+	self->priv->projects = _tmp0_;
+	_tmp1_ = projects_get_xml_file (self);
+	file = _tmp1_;
+	_tmp2_ = g_file_query_exists (file, NULL);
+	if (!_tmp2_) {
 		_g_object_unref0 (file);
 		return self;
 	}
-	{
-		char* contents;
-		char* _tmp1_ = NULL;
-		char* _tmp2_;
-		GMarkupParser _tmp3_ = {0};
-		GMarkupParser parser;
-		GMarkupParseContext* context;
-		contents = NULL;
-		g_file_load_contents (file, NULL, &_tmp1_, NULL, NULL, &_inner_error_);
-		contents = (_tmp2_ = _tmp1_, _g_free0 (contents), _tmp2_);
-		if (_inner_error_ != NULL) {
-			_g_free0 (contents);
-			goto __catch23_g_error;
-		}
-		parser = (_tmp3_.start_element = _projects_parser_start_gmarkup_parser_start_element_func, _tmp3_.end_element = NULL, _tmp3_.text = NULL, _tmp3_.passthrough = NULL, _tmp3_.error = NULL, _tmp3_);
-		context = g_markup_parse_context_new (&parser, 0, self, NULL);
-		g_markup_parse_context_parse (context, contents, (gssize) (-1), &_inner_error_);
-		if (_inner_error_ != NULL) {
-			_g_markup_parse_context_free0 (context);
-			_g_free0 (contents);
-			goto __catch23_g_error;
-		}
-		projects_update_all_documents (self);
-		projects_update_all_menus (self);
+	g_file_load_contents (file, NULL, &_tmp3_, NULL, NULL, &_inner_error_);
+	_g_free0 (contents);
+	contents = _tmp3_;
+	if (_inner_error_ != NULL) {
+		_g_free0 (contents);
+		goto __catch23_g_error;
+	}
+	_tmp4_.start_element = _projects_parser_start_gmarkup_parser_start_element_func;
+	_tmp4_.end_element = NULL;
+	_tmp4_.text = NULL;
+	_tmp4_.passthrough = NULL;
+	_tmp4_.error = NULL;
+	parser = _tmp4_;
+	_tmp5_ = g_markup_parse_context_new (&parser, 0, self, NULL);
+	context = _tmp5_;
+	g_markup_parse_context_parse (context, contents, (gssize) (-1), &_inner_error_);
+	if (_inner_error_ != NULL) {
 		_g_markup_parse_context_free0 (context);
 		_g_free0 (contents);
+		goto __catch23_g_error;
 	}
+	projects_update_all_documents (self);
+	projects_update_all_menus (self);
+	_g_markup_parse_context_free0 (context);
+	_g_free0 (contents);
 	goto __finally23;
 	__catch23_g_error:
 	{
 		GError * e;
 		e = _inner_error_;
 		_inner_error_ = NULL;
-		{
-			fprintf (stderr, "Warning: impossible to load projects: %s\n", e->message);
-			_g_error_free0 (e);
-		}
+		fprintf (stderr, "Warning: impossible to load projects: %s\n", e->message);
+		_g_error_free0 (e);
 	}
 	__finally23:
 	if (_inner_error_ != NULL) {
@@ -283,11 +292,15 @@ static gpointer _projects_ref0 (gpointer self) {
 
 Projects* projects_get_default (void) {
 	Projects* result = NULL;
+	Projects* _tmp1_;
 	if (projects_instance == NULL) {
-		Projects* _tmp0_;
-		projects_instance = (_tmp0_ = projects_new (), _projects_unref0 (projects_instance), _tmp0_);
+		Projects* _tmp0_ = NULL;
+		_tmp0_ = projects_new ();
+		_projects_unref0 (projects_instance);
+		projects_instance = _tmp0_;
 	}
-	result = _projects_ref0 (projects_instance);
+	_tmp1_ = _projects_ref0 (projects_instance);
+	result = _tmp1_;
 	return result;
 }
 
@@ -295,14 +308,18 @@ Projects* projects_get_default (void) {
 Project* projects_get (Projects* self, gint id) {
 	Project* result = NULL;
 	gboolean _tmp0_ = FALSE;
+	gpointer _tmp2_ = NULL;
 	g_return_val_if_fail (self != NULL, NULL);
 	if (id >= 0) {
-		_tmp0_ = id < gee_collection_get_size ((GeeCollection*) self->priv->projects);
+		gint _tmp1_;
+		_tmp1_ = gee_collection_get_size ((GeeCollection*) self->priv->projects);
+		_tmp0_ = id < _tmp1_;
 	} else {
 		_tmp0_ = FALSE;
 	}
 	g_return_val_if_fail (_tmp0_, NULL);
-	result = (Project*) gee_abstract_list_get ((GeeAbstractList*) self->priv->projects, id);
+	_tmp2_ = gee_abstract_list_get ((GeeAbstractList*) self->priv->projects, id);
+	result = (Project*) _tmp2_;
 	return result;
 }
 
@@ -316,16 +333,25 @@ GeeLinkedList* projects_get_projects (Projects* self) {
 
 
 static void projects_update_all_menus (Projects* self) {
+	Application* _tmp0_ = NULL;
+	Application* _tmp1_;
+	GList* _tmp2_ = NULL;
+	GList* _tmp3_;
 	g_return_if_fail (self != NULL);
+	_tmp0_ = application_get_default ();
+	_tmp1_ = _tmp0_;
+	_tmp2_ = application_get_windows (_tmp1_);
+	_tmp3_ = _tmp2_;
+	_g_object_unref0 (_tmp1_);
 	{
-		Application* _tmp0_;
-		GList* _tmp1_;
 		GList* window_collection;
 		GList* window_it;
-		window_collection = (_tmp1_ = application_get_windows (_tmp0_ = application_get_default ()), _g_object_unref0 (_tmp0_), _tmp1_);
+		window_collection = _tmp3_;
 		for (window_it = window_collection; window_it != NULL; window_it = window_it->next) {
+			MainWindow* _tmp4_;
 			MainWindow* window;
-			window = _g_object_ref0 ((MainWindow*) window_it->data);
+			_tmp4_ = _g_object_ref0 ((MainWindow*) window_it->data);
+			window = _tmp4_;
 			{
 				main_window_update_config_project_sensitivity (window);
 				_g_object_unref0 (window);
@@ -335,62 +361,108 @@ static void projects_update_all_menus (Projects* self) {
 }
 
 
-static void _g_list_free_g_object_unref (GList* self) {
-	g_list_foreach (self, (GFunc) g_object_unref, NULL);
+static void _g_object_unref0_ (gpointer var) {
+	(var == NULL) ? NULL : (var = (g_object_unref (var), NULL));
+}
+
+
+static void _g_list_free__g_object_unref0_ (GList* self) {
+	g_list_foreach (self, (GFunc) _g_object_unref0_, NULL);
 	g_list_free (self);
 }
 
 
 gboolean projects_add (Projects* self, Project* new_project, GFile** conflict_file) {
+	GFile* _conflict_file = NULL;
 	gboolean result = FALSE;
-	Application* _tmp4_;
-	GList* _tmp5_;
+	Application* _tmp9_ = NULL;
+	Application* _tmp10_;
+	GList* _tmp11_ = NULL;
+	GList* _tmp12_;
 	GList* docs;
 	g_return_val_if_fail (self != NULL, FALSE);
-	if (conflict_file != NULL) {
-		*conflict_file = NULL;
-	}
 	{
-		GeeIterator* _project_it;
-		_project_it = gee_abstract_collection_iterator ((GeeAbstractCollection*) self->priv->projects);
+		GeeLinkedList* _tmp0_;
+		GeeLinkedList* _project_list;
+		gint _tmp1_;
+		gint _project_size;
+		gint _project_index;
+		_tmp0_ = _g_object_ref0 (self->priv->projects);
+		_project_list = _tmp0_;
+		_tmp1_ = gee_collection_get_size ((GeeCollection*) _project_list);
+		_project_size = _tmp1_;
+		_project_index = -1;
 		while (TRUE) {
-			Project* _tmp0_;
-			Project _tmp1_ = {0};
-			Project _tmp2_;
+			gpointer _tmp2_ = NULL;
+			Project* _tmp3_;
+			Project _tmp4_;
+			Project _tmp5_ = {0};
+			Project _tmp6_;
 			Project project;
-			if (!gee_iterator_next (_project_it)) {
+			gboolean _tmp7_;
+			_project_index = _project_index + 1;
+			if (!(_project_index < _project_size)) {
 				break;
 			}
-			project = (_tmp2_ = (project_copy (_tmp0_ = (Project*) gee_iterator_get (_project_it), &_tmp1_), _tmp1_), _project_free0 (_tmp0_), _tmp2_);
-			if (projects_conflict (self, project.directory, (*new_project).directory)) {
-				GFile* _tmp3_;
-				*conflict_file = (_tmp3_ = _g_object_ref0 (project.directory), _g_object_unref0 (*conflict_file), _tmp3_);
+			_tmp2_ = gee_abstract_list_get ((GeeAbstractList*) _project_list, _project_index);
+			_tmp3_ = (Project*) _tmp2_;
+			project_copy (_tmp3_, &_tmp5_);
+			_tmp4_ = _tmp5_;
+			_tmp6_ = _tmp4_;
+			_project_free0 (_tmp3_);
+			project = _tmp6_;
+			_tmp7_ = projects_conflict (self, project.directory, (*new_project).directory);
+			if (_tmp7_) {
+				GFile* _tmp8_;
+				_tmp8_ = _g_object_ref0 (project.directory);
+				_g_object_unref0 (_conflict_file);
+				_conflict_file = _tmp8_;
 				result = FALSE;
 				project_destroy (&project);
-				_g_object_unref0 (_project_it);
+				_g_object_unref0 (_project_list);
+				if (conflict_file) {
+					*conflict_file = _conflict_file;
+				} else {
+					_g_object_unref0 (_conflict_file);
+				}
 				return result;
 			}
 			project_destroy (&project);
 		}
-		_g_object_unref0 (_project_it);
+		_g_object_unref0 (_project_list);
 	}
 	gee_abstract_collection_add ((GeeAbstractCollection*) self->priv->projects, new_project);
 	self->priv->modified = TRUE;
-	docs = (_tmp5_ = application_get_documents (_tmp4_ = application_get_default ()), _g_object_unref0 (_tmp4_), _tmp5_);
+	_tmp9_ = application_get_default ();
+	_tmp10_ = _tmp9_;
+	_tmp11_ = application_get_documents (_tmp10_);
+	_tmp12_ = _tmp11_;
+	_g_object_unref0 (_tmp10_);
+	docs = _tmp12_;
 	{
 		GList* doc_collection;
 		GList* doc_it;
 		doc_collection = docs;
 		for (doc_it = doc_collection; doc_it != NULL; doc_it = doc_it->next) {
+			Document* _tmp13_;
 			Document* doc;
-			doc = _g_object_ref0 ((Document*) doc_it->data);
+			_tmp13_ = _g_object_ref0 ((Document*) doc_it->data);
+			doc = _tmp13_;
 			{
-				if (document_get_project_id (doc) != (-1)) {
+				gint _tmp14_;
+				GFile* _tmp15_ = NULL;
+				gboolean _tmp16_;
+				_tmp14_ = document_get_project_id (doc);
+				if (_tmp14_ != (-1)) {
 					_g_object_unref0 (doc);
 					continue;
 				}
-				if (g_file_has_prefix (document_get_location (doc), (*new_project).directory)) {
-					document_set_project_id (doc, gee_collection_get_size ((GeeCollection*) self->priv->projects) - 1);
+				_tmp15_ = document_get_location (doc);
+				_tmp16_ = g_file_has_prefix (_tmp15_, (*new_project).directory);
+				if (_tmp16_) {
+					gint _tmp17_;
+					_tmp17_ = gee_collection_get_size ((GeeCollection*) self->priv->projects);
+					document_set_project_id (doc, _tmp17_ - 1);
 				}
 				_g_object_unref0 (doc);
 			}
@@ -398,7 +470,12 @@ gboolean projects_add (Projects* self, Project* new_project, GFile** conflict_fi
 	}
 	projects_update_all_menus (self);
 	result = TRUE;
-	__g_list_free_g_object_unref0 (docs);
+	__g_list_free__g_object_unref0_0 (docs);
+	if (conflict_file) {
+		*conflict_file = _conflict_file;
+	} else {
+		_g_object_unref0 (_conflict_file);
+	}
 	return result;
 }
 
@@ -406,42 +483,69 @@ gboolean projects_add (Projects* self, Project* new_project, GFile** conflict_fi
 gboolean projects_change_main_file (Projects* self, gint num, GFile* new_main_file) {
 	gboolean result = FALSE;
 	gboolean _tmp0_ = FALSE;
-	Project* _tmp1_;
-	Project _tmp2_ = {0};
-	Project _tmp3_;
+	gpointer _tmp2_ = NULL;
+	Project* _tmp3_;
+	Project _tmp4_;
+	Project _tmp5_ = {0};
+	Project _tmp6_;
 	Project project;
-	GFile* _tmp4_;
-	Application* _tmp5_;
-	GList* _tmp6_;
+	gboolean _tmp7_;
+	gboolean _tmp8_;
+	GFile* _tmp9_;
+	Application* _tmp10_ = NULL;
+	Application* _tmp11_;
+	GList* _tmp12_ = NULL;
+	GList* _tmp13_;
 	GList* docs;
 	g_return_val_if_fail (self != NULL, FALSE);
 	g_return_val_if_fail (new_main_file != NULL, FALSE);
 	if (num >= 0) {
-		_tmp0_ = num < gee_collection_get_size ((GeeCollection*) self->priv->projects);
+		gint _tmp1_;
+		_tmp1_ = gee_collection_get_size ((GeeCollection*) self->priv->projects);
+		_tmp0_ = num < _tmp1_;
 	} else {
 		_tmp0_ = FALSE;
 	}
 	g_return_val_if_fail (_tmp0_, FALSE);
-	project = (_tmp3_ = (project_copy (_tmp1_ = (Project*) gee_abstract_list_get ((GeeAbstractList*) self->priv->projects, num), &_tmp2_), _tmp2_), _project_free0 (_tmp1_), _tmp3_);
-	if (g_file_equal (new_main_file, project.main_file)) {
+	_tmp2_ = gee_abstract_list_get ((GeeAbstractList*) self->priv->projects, num);
+	_tmp3_ = (Project*) _tmp2_;
+	project_copy (_tmp3_, &_tmp5_);
+	_tmp4_ = _tmp5_;
+	_tmp6_ = _tmp4_;
+	_project_free0 (_tmp3_);
+	project = _tmp6_;
+	_tmp7_ = g_file_equal (new_main_file, project.main_file);
+	if (_tmp7_) {
 		result = FALSE;
 		project_destroy (&project);
 		return result;
 	}
-	g_return_if_fail (g_file_has_prefix (new_main_file, project.directory));
-	project.main_file = (_tmp4_ = _g_object_ref0 (new_main_file), _g_object_unref0 (project.main_file), _tmp4_);
+	_tmp8_ = g_file_has_prefix (new_main_file, project.directory);
+	g_return_if_fail (_tmp8_);
+	_tmp9_ = _g_object_ref0 (new_main_file);
+	_g_object_unref0 (project.main_file);
+	project.main_file = _tmp9_;
 	gee_abstract_list_set ((GeeAbstractList*) self->priv->projects, num, &project);
 	self->priv->modified = TRUE;
-	docs = (_tmp6_ = application_get_documents (_tmp5_ = application_get_default ()), _g_object_unref0 (_tmp5_), _tmp6_);
+	_tmp10_ = application_get_default ();
+	_tmp11_ = _tmp10_;
+	_tmp12_ = application_get_documents (_tmp11_);
+	_tmp13_ = _tmp12_;
+	_g_object_unref0 (_tmp11_);
+	docs = _tmp13_;
 	{
 		GList* doc_collection;
 		GList* doc_it;
 		doc_collection = docs;
 		for (doc_it = doc_collection; doc_it != NULL; doc_it = doc_it->next) {
+			Document* _tmp14_;
 			Document* doc;
-			doc = _g_object_ref0 ((Document*) doc_it->data);
+			_tmp14_ = _g_object_ref0 ((Document*) doc_it->data);
+			doc = _tmp14_;
 			{
-				if (document_get_project_id (doc) == num) {
+				gint _tmp15_;
+				_tmp15_ = document_get_project_id (doc);
+				if (_tmp15_ == num) {
 					document_set_project_id (doc, num);
 				}
 				_g_object_unref0 (doc);
@@ -449,7 +553,7 @@ gboolean projects_change_main_file (Projects* self, gint num, GFile* new_main_fi
 		}
 	}
 	result = TRUE;
-	__g_list_free_g_object_unref0 (docs);
+	__g_list_free__g_object_unref0_0 (docs);
 	project_destroy (&project);
 	return result;
 }
@@ -457,37 +561,55 @@ gboolean projects_change_main_file (Projects* self, gint num, GFile* new_main_fi
 
 void projects_delete (Projects* self, gint num) {
 	gboolean _tmp0_ = FALSE;
-	Project* _tmp1_;
-	Application* _tmp2_;
-	GList* _tmp3_;
+	gpointer _tmp2_ = NULL;
+	Project* _tmp3_;
+	Application* _tmp4_ = NULL;
+	Application* _tmp5_;
+	GList* _tmp6_ = NULL;
+	GList* _tmp7_;
 	GList* docs;
 	g_return_if_fail (self != NULL);
 	if (num >= 0) {
-		_tmp0_ = num < gee_collection_get_size ((GeeCollection*) self->priv->projects);
+		gint _tmp1_;
+		_tmp1_ = gee_collection_get_size ((GeeCollection*) self->priv->projects);
+		_tmp0_ = num < _tmp1_;
 	} else {
 		_tmp0_ = FALSE;
 	}
 	g_return_if_fail (_tmp0_);
-	_tmp1_ = (Project*) gee_abstract_list_remove_at ((GeeAbstractList*) self->priv->projects, num);
-	_project_free0 (_tmp1_);
+	_tmp2_ = gee_abstract_list_remove_at ((GeeAbstractList*) self->priv->projects, num);
+	_tmp3_ = (Project*) _tmp2_;
+	_project_free0 (_tmp3_);
 	self->priv->modified = TRUE;
-	docs = (_tmp3_ = application_get_documents (_tmp2_ = application_get_default ()), _g_object_unref0 (_tmp2_), _tmp3_);
+	_tmp4_ = application_get_default ();
+	_tmp5_ = _tmp4_;
+	_tmp6_ = application_get_documents (_tmp5_);
+	_tmp7_ = _tmp6_;
+	_g_object_unref0 (_tmp5_);
+	docs = _tmp7_;
 	{
 		GList* doc_collection;
 		GList* doc_it;
 		doc_collection = docs;
 		for (doc_it = doc_collection; doc_it != NULL; doc_it = doc_it->next) {
+			Document* _tmp8_;
 			Document* doc;
-			doc = _g_object_ref0 ((Document*) doc_it->data);
+			_tmp8_ = _g_object_ref0 ((Document*) doc_it->data);
+			doc = _tmp8_;
 			{
-				if (document_get_project_id (doc) == num) {
+				gint _tmp9_;
+				_tmp9_ = document_get_project_id (doc);
+				if (_tmp9_ == num) {
 					document_set_project_id (doc, -1);
 				} else {
-					if (document_get_project_id (doc) > num) {
-						gint _tmp4_;
-						_tmp4_ = document_get_project_id (doc);
-						document_set_project_id (doc, _tmp4_ - 1);
-						_tmp4_;
+					gint _tmp10_;
+					_tmp10_ = document_get_project_id (doc);
+					if (_tmp10_ > num) {
+						gint _tmp11_;
+						gint _tmp12_;
+						_tmp11_ = document_get_project_id (doc);
+						_tmp12_ = _tmp11_;
+						document_set_project_id (doc, _tmp12_ - 1);
 					}
 				}
 				_g_object_unref0 (doc);
@@ -495,7 +617,7 @@ void projects_delete (Projects* self, gint num) {
 		}
 	}
 	projects_update_all_menus (self);
-	__g_list_free_g_object_unref0 (docs);
+	__g_list_free__g_object_unref0_0 (docs);
 }
 
 
@@ -509,37 +631,57 @@ void projects_clear_all (Projects* self) {
 
 
 static void projects_update_all_documents (Projects* self) {
-	Application* _tmp0_;
-	GList* _tmp1_;
+	Application* _tmp0_ = NULL;
+	Application* _tmp1_;
+	GList* _tmp2_ = NULL;
+	GList* _tmp3_;
 	GList* docs;
 	g_return_if_fail (self != NULL);
-	docs = (_tmp1_ = application_get_documents (_tmp0_ = application_get_default ()), _g_object_unref0 (_tmp0_), _tmp1_);
+	_tmp0_ = application_get_default ();
+	_tmp1_ = _tmp0_;
+	_tmp2_ = application_get_documents (_tmp1_);
+	_tmp3_ = _tmp2_;
+	_g_object_unref0 (_tmp1_);
+	docs = _tmp3_;
 	{
 		GList* doc_collection;
 		GList* doc_it;
 		doc_collection = docs;
 		for (doc_it = doc_collection; doc_it != NULL; doc_it = doc_it->next) {
+			Document* _tmp4_;
 			Document* doc;
-			doc = _g_object_ref0 ((Document*) doc_it->data);
+			_tmp4_ = _g_object_ref0 ((Document*) doc_it->data);
+			doc = _tmp4_;
 			{
 				document_set_project_id (doc, -1);
 				{
 					gint i;
 					i = 0;
 					{
-						gboolean _tmp2_;
-						_tmp2_ = TRUE;
+						gboolean _tmp5_;
+						_tmp5_ = TRUE;
 						while (TRUE) {
-							Project* _tmp3_;
-							gboolean _tmp4_;
-							if (!_tmp2_) {
+							gint _tmp6_;
+							GFile* _tmp7_ = NULL;
+							gpointer _tmp8_ = NULL;
+							Project* _tmp9_;
+							gboolean _tmp10_;
+							gboolean _tmp11_;
+							if (!_tmp5_) {
 								i++;
 							}
-							_tmp2_ = FALSE;
-							if (!(i < gee_collection_get_size ((GeeCollection*) self->priv->projects))) {
+							_tmp5_ = FALSE;
+							_tmp6_ = gee_collection_get_size ((GeeCollection*) self->priv->projects);
+							if (!(i < _tmp6_)) {
 								break;
 							}
-							if ((_tmp4_ = g_file_has_prefix (document_get_location (doc), (*(_tmp3_ = (Project*) gee_abstract_list_get ((GeeAbstractList*) self->priv->projects, i))).directory), _project_free0 (_tmp3_), _tmp4_)) {
+							_tmp7_ = document_get_location (doc);
+							_tmp8_ = gee_abstract_list_get ((GeeAbstractList*) self->priv->projects, i);
+							_tmp9_ = (Project*) _tmp8_;
+							_tmp10_ = g_file_has_prefix (_tmp7_, (*_tmp9_).directory);
+							_tmp11_ = _tmp10_;
+							_project_free0 (_tmp9_);
+							if (_tmp11_) {
 								document_set_project_id (doc, i);
 								break;
 							}
@@ -550,107 +692,135 @@ static void projects_update_all_documents (Projects* self) {
 			}
 		}
 	}
-	__g_list_free_g_object_unref0 (docs);
+	__g_list_free__g_object_unref0_0 (docs);
 }
 
 
-static void projects_parser_start (Projects* self, GMarkupParseContext* context, const char* name, char** attr_names, int attr_names_length1, char** attr_values, int attr_values_length1, GError** error) {
-	const char* _tmp11_;
-	GQuark _tmp12_;
-	static GQuark _tmp12__label0 = 0;
-	static GQuark _tmp12__label1 = 0;
+static void projects_parser_start (Projects* self, GMarkupParseContext* context, const gchar* name, gchar** attr_names, int attr_names_length1, gchar** attr_values, int attr_values_length1, GError** error) {
+	const gchar* _tmp0_;
+	GQuark _tmp1_;
+	static GQuark _tmp1__label0 = 0;
+	static GQuark _tmp1__label1 = 0;
 	GError * _inner_error_ = NULL;
 	g_return_if_fail (self != NULL);
 	g_return_if_fail (context != NULL);
 	g_return_if_fail (name != NULL);
-	_tmp11_ = name;
-	_tmp12_ = (NULL == _tmp11_) ? 0 : g_quark_from_string (_tmp11_);
-	if (_tmp12_ == ((0 != _tmp12__label0) ? _tmp12__label0 : (_tmp12__label0 = g_quark_from_static_string ("projects"))))
-	switch (0) {
-		default:
-		{
-			return;
+	_tmp0_ = name;
+	_tmp1_ = (NULL == _tmp0_) ? 0 : g_quark_from_string (_tmp0_);
+	if (_tmp1_ == ((0 != _tmp1__label0) ? _tmp1__label0 : (_tmp1__label0 = g_quark_from_static_string ("projects")))) {
+		switch (0) {
+			default:
+			{
+				return;
+			}
 		}
-	} else if (_tmp12_ == ((0 != _tmp12__label1) ? _tmp12__label1 : (_tmp12__label1 = g_quark_from_static_string ("project"))))
-	switch (0) {
-		default:
-		{
-			Project project = {0};
-			memset (&project, 0, sizeof (Project));
+	} else if (_tmp1_ == ((0 != _tmp1__label1) ? _tmp1__label1 : (_tmp1__label1 = g_quark_from_static_string ("project")))) {
+		switch (0) {
+			default:
 			{
-				gint i;
-				i = 0;
+				Project project = {0};
+				memset (&project, 0, sizeof (Project));
 				{
-					gboolean _tmp0_;
-					_tmp0_ = TRUE;
-					while (TRUE) {
-						const char* _tmp6_;
-						GQuark _tmp7_;
-						static GQuark _tmp7__label0 = 0;
-						static GQuark _tmp7__label1 = 0;
-						if (!_tmp0_) {
-							i++;
-						}
-						_tmp0_ = FALSE;
-						if (!(i < attr_names_length1)) {
-							break;
-						}
-						_tmp6_ = attr_names[i];
-						_tmp7_ = (NULL == _tmp6_) ? 0 : g_quark_from_string (_tmp6_);
-						if (_tmp7_ == ((0 != _tmp7__label0) ? _tmp7__label0 : (_tmp7__label0 = g_quark_from_static_string ("directory"))))
-						switch (0) {
-							default:
-							{
-								GFile* _tmp1_;
-								project.directory = (_tmp1_ = g_file_new_for_uri (attr_values[i]), _g_object_unref0 (project.directory), _tmp1_);
-								break;
+					gint i;
+					i = 0;
+					{
+						gboolean _tmp2_;
+						_tmp2_ = TRUE;
+						while (TRUE) {
+							const gchar* _tmp3_;
+							GQuark _tmp4_;
+							static GQuark _tmp4__label0 = 0;
+							static GQuark _tmp4__label1 = 0;
+							if (!_tmp2_) {
+								i++;
 							}
-						} else if (_tmp7_ == ((0 != _tmp7__label1) ? _tmp7__label1 : (_tmp7__label1 = g_quark_from_static_string ("main_file"))))
-						switch (0) {
-							default:
-							{
-								GFile* _tmp2_;
-								project.main_file = (_tmp2_ = g_file_new_for_uri (attr_values[i]), _g_object_unref0 (project.main_file), _tmp2_);
+							_tmp2_ = FALSE;
+							if (!(i < attr_names_length1)) {
 								break;
 							}
-						} else
-						switch (0) {
-							default:
-							{
-								char* _tmp3_;
-								char* _tmp4_;
-								GError* _tmp5_;
-								_inner_error_ = (_tmp5_ = g_error_new_literal (G_MARKUP_ERROR, G_MARKUP_ERROR_UNKNOWN_ATTRIBUTE, _tmp4_ = g_strconcat (_tmp3_ = g_strconcat ("unknown attribute \"", attr_names[i], NULL), "\"", NULL)), _g_free0 (_tmp4_), _g_free0 (_tmp3_), _tmp5_);
-								{
-									if (_inner_error_->domain == G_MARKUP_ERROR) {
-										g_propagate_error (error, _inner_error_);
-										project_destroy (&project);
-										return;
-									} else {
-										project_destroy (&project);
-										g_critical ("file %s: line %d: uncaught error: %s (%s, %d)", __FILE__, __LINE__, _inner_error_->message, g_quark_to_string (_inner_error_->domain), _inner_error_->code);
-										g_clear_error (&_inner_error_);
-										return;
+							_tmp3_ = attr_names[i];
+							_tmp4_ = (NULL == _tmp3_) ? 0 : g_quark_from_string (_tmp3_);
+							if (_tmp4_ == ((0 != _tmp4__label0) ? _tmp4__label0 : (_tmp4__label0 = g_quark_from_static_string ("directory")))) {
+								switch (0) {
+									default:
+									{
+										GFile* _tmp5_ = NULL;
+										_tmp5_ = g_file_new_for_uri (attr_values[i]);
+										_g_object_unref0 (project.directory);
+										project.directory = _tmp5_;
+										break;
+									}
+								}
+							} else if (_tmp4_ == ((0 != _tmp4__label1) ? _tmp4__label1 : (_tmp4__label1 = g_quark_from_static_string ("main_file")))) {
+								switch (0) {
+									default:
+									{
+										GFile* _tmp6_ = NULL;
+										_tmp6_ = g_file_new_for_uri (attr_values[i]);
+										_g_object_unref0 (project.main_file);
+										project.main_file = _tmp6_;
+										break;
+									}
+								}
+							} else {
+								switch (0) {
+									default:
+									{
+										gchar* _tmp7_;
+										gchar* _tmp8_;
+										gchar* _tmp9_;
+										gchar* _tmp10_;
+										GError* _tmp11_ = NULL;
+										GError* _tmp12_;
+										_tmp7_ = g_strconcat ("unknown attribute \"", attr_names[i], NULL);
+										_tmp8_ = _tmp7_;
+										_tmp9_ = g_strconcat (_tmp8_, "\"", NULL);
+										_tmp10_ = _tmp9_;
+										_tmp11_ = g_error_new_literal (G_MARKUP_ERROR, G_MARKUP_ERROR_UNKNOWN_ATTRIBUTE, _tmp10_);
+										_tmp12_ = _tmp11_;
+										_g_free0 (_tmp10_);
+										_g_free0 (_tmp8_);
+										_inner_error_ = _tmp12_;
+										if (_inner_error_->domain == G_MARKUP_ERROR) {
+											g_propagate_error (error, _inner_error_);
+											project_destroy (&project);
+											return;
+										} else {
+											project_destroy (&project);
+											g_critical ("file %s: line %d: uncaught error: %s (%s, %d)", __FILE__, __LINE__, _inner_error_->message, g_quark_to_string (_inner_error_->domain), _inner_error_->code);
+											g_clear_error (&_inner_error_);
+											return;
+										}
 									}
 								}
 							}
 						}
 					}
 				}
+				gee_abstract_collection_add ((GeeAbstractCollection*) self->priv->projects, &project);
+				project_destroy (&project);
+				break;
 			}
-			gee_abstract_collection_add ((GeeAbstractCollection*) self->priv->projects, &project);
-			project_destroy (&project);
-			break;
 		}
-	} else
-	switch (0) {
-		default:
-		{
-			char* _tmp8_;
-			char* _tmp9_;
-			GError* _tmp10_;
-			_inner_error_ = (_tmp10_ = g_error_new_literal (G_MARKUP_ERROR, G_MARKUP_ERROR_UNKNOWN_ELEMENT, _tmp9_ = g_strconcat (_tmp8_ = g_strconcat ("unknown element \"", name, NULL), "\"", NULL)), _g_free0 (_tmp9_), _g_free0 (_tmp8_), _tmp10_);
+	} else {
+		switch (0) {
+			default:
 			{
+				gchar* _tmp13_;
+				gchar* _tmp14_;
+				gchar* _tmp15_;
+				gchar* _tmp16_;
+				GError* _tmp17_ = NULL;
+				GError* _tmp18_;
+				_tmp13_ = g_strconcat ("unknown element \"", name, NULL);
+				_tmp14_ = _tmp13_;
+				_tmp15_ = g_strconcat (_tmp14_, "\"", NULL);
+				_tmp16_ = _tmp15_;
+				_tmp17_ = g_error_new_literal (G_MARKUP_ERROR, G_MARKUP_ERROR_UNKNOWN_ELEMENT, _tmp16_);
+				_tmp18_ = _tmp17_;
+				_g_free0 (_tmp16_);
+				_g_free0 (_tmp14_);
+				_inner_error_ = _tmp18_;
 				if (_inner_error_->domain == G_MARKUP_ERROR) {
 					g_propagate_error (error, _inner_error_);
 					return;
@@ -667,89 +837,133 @@ static void projects_parser_start (Projects* self, GMarkupParseContext* context,
 
 static GFile* projects_get_xml_file (Projects* self) {
 	GFile* result = NULL;
-	char* path;
+	const gchar* _tmp0_ = NULL;
+	gchar* _tmp1_ = NULL;
+	gchar* path;
+	GFile* _tmp2_ = NULL;
 	g_return_val_if_fail (self != NULL, NULL);
-	path = g_build_filename (g_get_user_data_dir (), "latexila", "projects.xml", NULL, NULL);
-	result = g_file_new_for_path (path);
+	_tmp0_ = g_get_user_data_dir ();
+	_tmp1_ = g_build_filename (_tmp0_, "latexila", "projects.xml", NULL, NULL);
+	path = _tmp1_;
+	_tmp2_ = g_file_new_for_path (path);
+	result = _tmp2_;
 	_g_free0 (path);
 	return result;
 }
 
 
 void projects_save (Projects* self) {
+	GFile* _tmp0_ = NULL;
 	GFile* file;
-	char* content;
-	char* _tmp7_;
+	gint _tmp1_;
+	gchar* _tmp2_;
+	gchar* content;
+	gchar* _tmp17_;
+	GFile* _tmp18_ = NULL;
+	GFile* parent;
+	gboolean _tmp19_ = FALSE;
+	gsize _tmp21_;
 	GError * _inner_error_ = NULL;
 	g_return_if_fail (self != NULL);
 	if (!self->priv->modified) {
 		return;
 	}
-	file = projects_get_xml_file (self);
-	if (gee_collection_get_size ((GeeCollection*) self->priv->projects) == 0) {
+	_tmp0_ = projects_get_xml_file (self);
+	file = _tmp0_;
+	_tmp1_ = gee_collection_get_size ((GeeCollection*) self->priv->projects);
+	if (_tmp1_ == 0) {
 		utils_delete_file (file);
 		_g_object_unref0 (file);
 		return;
 	}
-	content = g_strdup ("<projects>\n");
+	_tmp2_ = g_strdup ("<projects>\n");
+	content = _tmp2_;
 	{
-		GeeIterator* _project_it;
-		_project_it = gee_abstract_collection_iterator ((GeeAbstractCollection*) self->priv->projects);
+		GeeLinkedList* _tmp3_;
+		GeeLinkedList* _project_list;
+		gint _tmp4_;
+		gint _project_size;
+		gint _project_index;
+		_tmp3_ = _g_object_ref0 (self->priv->projects);
+		_project_list = _tmp3_;
+		_tmp4_ = gee_collection_get_size ((GeeCollection*) _project_list);
+		_project_size = _tmp4_;
+		_project_index = -1;
 		while (TRUE) {
-			Project* _tmp0_;
-			Project _tmp1_ = {0};
-			Project _tmp2_;
+			gpointer _tmp5_ = NULL;
+			Project* _tmp6_;
+			Project _tmp7_;
+			Project _tmp8_ = {0};
+			Project _tmp9_;
 			Project project;
-			char* _tmp3_;
-			char* _tmp4_;
-			char* _tmp5_;
-			char* _tmp6_;
-			if (!gee_iterator_next (_project_it)) {
+			gchar* _tmp10_ = NULL;
+			gchar* _tmp11_;
+			gchar* _tmp12_ = NULL;
+			gchar* _tmp13_;
+			gchar* _tmp14_ = NULL;
+			gchar* _tmp15_;
+			gchar* _tmp16_;
+			_project_index = _project_index + 1;
+			if (!(_project_index < _project_size)) {
 				break;
 			}
-			project = (_tmp2_ = (project_copy (_tmp0_ = (Project*) gee_iterator_get (_project_it), &_tmp1_), _tmp1_), _project_free0 (_tmp0_), _tmp2_);
-			content = (_tmp6_ = g_strconcat (content, _tmp5_ = g_strdup_printf ("  <project directory=\"%s\" main_file=\"%s\" />\n", _tmp3_ = g_file_get_uri (project.directory), _tmp4_ = g_file_get_uri (project.main_file)), NULL), _g_free0 (content), _tmp6_);
-			_g_free0 (_tmp5_);
-			_g_free0 (_tmp4_);
-			_g_free0 (_tmp3_);
+			_tmp5_ = gee_abstract_list_get ((GeeAbstractList*) _project_list, _project_index);
+			_tmp6_ = (Project*) _tmp5_;
+			project_copy (_tmp6_, &_tmp8_);
+			_tmp7_ = _tmp8_;
+			_tmp9_ = _tmp7_;
+			_project_free0 (_tmp6_);
+			project = _tmp9_;
+			_tmp10_ = g_file_get_uri (project.directory);
+			_tmp11_ = _tmp10_;
+			_tmp12_ = g_file_get_uri (project.main_file);
+			_tmp13_ = _tmp12_;
+			_tmp14_ = g_strdup_printf ("  <project directory=\"%s\" main_file=\"%s\" />\n", _tmp11_, _tmp13_);
+			_tmp15_ = _tmp14_;
+			_tmp16_ = g_strconcat (content, _tmp15_, NULL);
+			_g_free0 (content);
+			content = _tmp16_;
+			_g_free0 (_tmp15_);
+			_g_free0 (_tmp13_);
+			_g_free0 (_tmp11_);
 			project_destroy (&project);
 		}
-		_g_object_unref0 (_project_it);
+		_g_object_unref0 (_project_list);
 	}
-	content = (_tmp7_ = g_strconcat (content, "</projects>\n", NULL), _g_free0 (content), _tmp7_);
-	{
-		GFile* parent;
-		gboolean _tmp8_ = FALSE;
-		parent = g_file_get_parent (file);
-		if (parent != NULL) {
-			_tmp8_ = !g_file_query_exists (parent, NULL);
-		} else {
-			_tmp8_ = FALSE;
-		}
-		if (_tmp8_) {
-			g_file_make_directory_with_parents (parent, NULL, &_inner_error_);
-			if (_inner_error_ != NULL) {
-				_g_object_unref0 (parent);
-				goto __catch24_g_error;
-			}
-		}
-		g_file_replace_contents (file, content, strlen (content), NULL, FALSE, G_FILE_CREATE_NONE, NULL, NULL, &_inner_error_);
+	_tmp17_ = g_strconcat (content, "</projects>\n", NULL);
+	_g_free0 (content);
+	content = _tmp17_;
+	_tmp18_ = g_file_get_parent (file);
+	parent = _tmp18_;
+	if (parent != NULL) {
+		gboolean _tmp20_;
+		_tmp20_ = g_file_query_exists (parent, NULL);
+		_tmp19_ = !_tmp20_;
+	} else {
+		_tmp19_ = FALSE;
+	}
+	if (_tmp19_) {
+		g_file_make_directory_with_parents (parent, NULL, &_inner_error_);
 		if (_inner_error_ != NULL) {
 			_g_object_unref0 (parent);
 			goto __catch24_g_error;
 		}
+	}
+	_tmp21_ = strlen (content);
+	g_file_replace_contents (file, content, _tmp21_, NULL, FALSE, G_FILE_CREATE_NONE, NULL, NULL, &_inner_error_);
+	if (_inner_error_ != NULL) {
 		_g_object_unref0 (parent);
+		goto __catch24_g_error;
 	}
+	_g_object_unref0 (parent);
 	goto __finally24;
 	__catch24_g_error:
 	{
 		GError * e;
 		e = _inner_error_;
 		_inner_error_ = NULL;
-		{
-			fprintf (stderr, "Warning: impossible to save projects: %s\n", e->message);
-			_g_error_free0 (e);
-		}
+		fprintf (stderr, "Warning: impossible to save projects: %s\n", e->message);
+		_g_error_free0 (e);
 	}
 	__finally24:
 	if (_inner_error_ != NULL) {
@@ -768,18 +982,24 @@ static gboolean projects_conflict (Projects* self, GFile* dir1, GFile* dir2) {
 	gboolean result = FALSE;
 	gboolean _tmp0_ = FALSE;
 	gboolean _tmp1_ = FALSE;
+	gboolean _tmp2_;
 	g_return_val_if_fail (self != NULL, FALSE);
 	g_return_val_if_fail (dir1 != NULL, FALSE);
 	g_return_val_if_fail (dir2 != NULL, FALSE);
-	if (g_file_has_prefix (dir1, dir2)) {
+	_tmp2_ = g_file_has_prefix (dir1, dir2);
+	if (_tmp2_) {
 		_tmp1_ = TRUE;
 	} else {
-		_tmp1_ = g_file_has_prefix (dir2, dir1);
+		gboolean _tmp3_;
+		_tmp3_ = g_file_has_prefix (dir2, dir1);
+		_tmp1_ = _tmp3_;
 	}
 	if (_tmp1_) {
 		_tmp0_ = TRUE;
 	} else {
-		_tmp0_ = g_file_equal (dir1, dir2);
+		gboolean _tmp4_;
+		_tmp4_ = g_file_equal (dir1, dir2);
+		_tmp0_ = _tmp4_;
 	}
 	result = _tmp0_;
 	return result;
@@ -962,4 +1182,3 @@ static gint _vala_array_length (gpointer array) {
 
 
 
-
diff --git a/src/C/search.c b/src/C/search.c
index c091664..d274adf 100644
--- a/src/C/search.c
+++ b/src/C/search.c
@@ -1,4 +1,4 @@
-/* search.c generated by valac 0.10.3, the Vala compiler
+/* search.c generated by valac 0.12.1, the Vala compiler
  * generated from search.vala, do not modify */
 
 /*
@@ -187,7 +187,7 @@ Document* main_window_get_active_document (MainWindow* self);
 gboolean document_goto_line (Document* self, gint line);
 GType document_view_get_type (void) G_GNUC_CONST;
 DocumentView* main_window_get_active_view (MainWindow* self);
-void document_view_scroll_to_cursor (DocumentView* self, double margin);
+void document_view_scroll_to_cursor (DocumentView* self, gdouble margin);
 static void goto_line_finalize (GObject* obj);
 GType search_and_replace_get_type (void) G_GNUC_CONST;
 #define SEARCH_AND_REPLACE_GET_PRIVATE(o) (G_TYPE_INSTANCE_GET_PRIVATE ((o), TYPE_SEARCH_AND_REPLACE, SearchAndReplacePrivate))
@@ -196,6 +196,8 @@ enum  {
 };
 SearchAndReplace* search_and_replace_new (MainWindow* main_window);
 SearchAndReplace* search_and_replace_construct (GType object_type, MainWindow* main_window);
+static Block13Data* block13_data_ref (Block13Data* _data13_);
+static void block13_data_unref (Block13Data* _data13_);
 static void _lambda26_ (GtkEntryIconPosition icon_pos, GdkEvent* event, Block13Data* _data13_);
 static void __lambda26__gtk_entry_icon_press (GtkEntry* _sender, GtkEntryIconPosition p0, GdkEvent* p1, gpointer self);
 static void _lambda27_ (SearchAndReplace* self);
@@ -227,13 +229,12 @@ static void search_and_replace_replace (SearchAndReplace* self);
 static void _search_and_replace_replace_gtk_button_clicked (GtkButton* _sender, gpointer self);
 static void _search_and_replace_replace_gtk_entry_activate (GtkEntry* _sender, gpointer self);
 static void _lambda35_ (SearchAndReplace* self);
-void document_replace_all (Document* self, const char* text);
+void document_replace_all (Document* self, const gchar* text);
 static void __lambda35__gtk_button_clicked (GtkButton* _sender, gpointer self);
 static gboolean _lambda36_ (GdkEventKey* event, SearchAndReplace* self);
 void search_and_replace_show_search_and_replace (SearchAndReplace* self);
+static void search_and_replace_select_selected_search_text (SearchAndReplace* self);
 static gboolean __lambda36__gtk_widget_key_press_event (GtkWidget* _sender, GdkEventKey* event, gpointer self);
-static Block13Data* block13_data_ref (Block13Data* _data13_);
-static void block13_data_unref (Block13Data* _data13_);
 GtkWidget* search_and_replace_get_widget (SearchAndReplace* self);
 void search_and_replace_show_search (SearchAndReplace* self);
 static void search_and_replace_show (SearchAndReplace* self);
@@ -244,19 +245,19 @@ GType selection_type_get_type (void) G_GNUC_CONST;
 SelectionType document_get_selection_type (Document* self);
 static void search_and_replace_active_document_changed (SearchAndReplace* self);
 static void _search_and_replace_active_document_changed_g_object_notify (GObject* _sender, GParamSpec* pspec, gpointer self);
-static void search_and_replace_set_label_text (SearchAndReplace* self, const char* text, gboolean _error_);
+static void search_and_replace_set_label_text (SearchAndReplace* self, const gchar* text, gboolean _error_);
 static void search_and_replace_on_search_info_updated (SearchAndReplace* self, gboolean selected, guint nb_matches, guint num_match);
 static void _search_and_replace_on_search_info_updated_document_search_info_updated (Document* _sender, gboolean selected, guint nb_matches, guint num_match, gpointer self);
-void document_set_search_text (Document* self, const char* text, gboolean case_sensitive, gboolean entire_word, guint* nb_matches, guint* num_match, gboolean select);
+void document_set_search_text (Document* self, const gchar* text, gboolean case_sensitive, gboolean entire_word, guint* nb_matches, guint* num_match, gboolean select);
 static gboolean search_and_replace_get_case_sensitive (SearchAndReplace* self);
 static gboolean search_and_replace_get_entire_word (SearchAndReplace* self);
+void document_select_selected_search_text (Document* self);
 void document_search_forward (Document* self);
 void document_clear_search (Document* self, gboolean disconnect_signals);
 gboolean document_get_readonly (Document* self);
-void document_replace (Document* self, const char* text);
+void document_replace (Document* self, const gchar* text);
 static void search_and_replace_finalize (GObject* obj);
-static void search_and_replace_get_property (GObject * object, guint property_id, GValue * value, GParamSpec * pspec);
-
+static void _vala_search_and_replace_get_property (GObject * object, guint property_id, GValue * value, GParamSpec * pspec);
 
 
 static void _lambda23_ (GotoLine* self) {
@@ -295,28 +296,40 @@ static void _goto_line_on_changed_gtk_editable_changed (GtkEditable* _sender, gp
 
 
 GotoLine* goto_line_construct (GType object_type, MainWindow* main_window) {
-	GotoLine * self;
+	GotoLine * self = NULL;
+	GtkButton* _tmp0_ = NULL;
 	GtkButton* close_button;
+	GtkImage* _tmp1_ = NULL;
 	GtkImage* img;
+	const gchar* _tmp2_ = NULL;
+	GtkLabel* _tmp3_ = NULL;
 	GtkLabel* label;
-	GtkEntry* _tmp0_;
+	GtkEntry* _tmp4_ = NULL;
+	const gchar* _tmp5_ = NULL;
 	g_return_val_if_fail (main_window != NULL, NULL);
-	self = g_object_newv (object_type, 0, NULL);
+	self = (GotoLine*) g_object_new (object_type, NULL);
 	self->priv->main_window = main_window;
 	gtk_box_set_spacing ((GtkBox*) self, 3);
-	close_button = g_object_ref_sink ((GtkButton*) gtk_button_new ());
+	_tmp0_ = (GtkButton*) gtk_button_new ();
+	close_button = g_object_ref_sink (_tmp0_);
 	gtk_box_pack_start ((GtkBox*) self, (GtkWidget*) close_button, FALSE, FALSE, (guint) 0);
 	gtk_button_set_relief (close_button, GTK_RELIEF_NONE);
-	img = g_object_ref_sink ((GtkImage*) gtk_image_new_from_stock (GTK_STOCK_CLOSE, GTK_ICON_SIZE_MENU));
+	_tmp1_ = (GtkImage*) gtk_image_new_from_stock (GTK_STOCK_CLOSE, GTK_ICON_SIZE_MENU);
+	img = g_object_ref_sink (_tmp1_);
 	gtk_container_add ((GtkContainer*) close_button, (GtkWidget*) img);
 	g_signal_connect_object (close_button, "clicked", (GCallback) __lambda23__gtk_button_clicked, self, 0);
-	label = g_object_ref_sink ((GtkLabel*) gtk_label_new (_ ("Go to Line:")));
+	_tmp2_ = _ ("Go to Line:");
+	_tmp3_ = (GtkLabel*) gtk_label_new (_tmp2_);
+	label = g_object_ref_sink (_tmp3_);
 	gtk_box_pack_start ((GtkBox*) self, (GtkWidget*) label, FALSE, FALSE, (guint) 2);
-	self->priv->entry = (_tmp0_ = g_object_ref_sink ((GtkEntry*) gtk_entry_new ()), _g_object_unref0 (self->priv->entry), _tmp0_);
+	_tmp4_ = (GtkEntry*) gtk_entry_new ();
+	_g_object_unref0 (self->priv->entry);
+	self->priv->entry = g_object_ref_sink (_tmp4_);
 	gtk_box_pack_start ((GtkBox*) self, (GtkWidget*) self->priv->entry, FALSE, FALSE, (guint) 0);
 	gtk_entry_set_icon_from_stock (self->priv->entry, GTK_ENTRY_ICON_SECONDARY, GTK_STOCK_JUMP_TO);
 	gtk_entry_set_icon_activatable (self->priv->entry, GTK_ENTRY_ICON_SECONDARY, TRUE);
-	gtk_widget_set_tooltip_text ((GtkWidget*) self->priv->entry, _ ("Line you want to move the cursor to"));
+	_tmp5_ = _ ("Line you want to move the cursor to");
+	gtk_widget_set_tooltip_text ((GtkWidget*) self->priv->entry, _tmp5_);
 	gtk_widget_set_size_request ((GtkWidget*) self->priv->entry, 100, -1);
 	g_signal_connect_object (self->priv->entry, "activate", (GCallback) __lambda24__gtk_entry_activate, self, 0);
 	g_signal_connect_object (self->priv->entry, "icon-press", (GCallback) __lambda25__gtk_entry_icon_press, self, 0);
@@ -341,41 +354,57 @@ void goto_line_show (GotoLine* self) {
 }
 
 
-static glong string_get_length (const char* self) {
-	glong result;
-	g_return_val_if_fail (self != NULL, 0L);
-	result = g_utf8_strlen (self, (gssize) (-1));
+static gchar string_get (const gchar* self, glong index) {
+	gchar result = '\0';
+	g_return_val_if_fail (self != NULL, '\0');
+	result = ((gchar*) self)[index];
 	return result;
 }
 
 
 static void goto_line_on_changed (GotoLine* self) {
-	char* text;
+	guint _tmp0_;
+	const gchar* _tmp1_ = NULL;
+	gchar* _tmp2_;
+	gchar* text;
+	gint _tmp7_;
 	gint line;
+	Document* _tmp8_ = NULL;
+	gboolean _tmp9_;
 	gboolean _error_;
+	DocumentView* _tmp10_ = NULL;
 	g_return_if_fail (self != NULL);
-	if (gtk_entry_get_text_length (self->priv->entry) == 0) {
+	_tmp0_ = gtk_entry_get_text_length (self->priv->entry);
+	if (_tmp0_ == 0) {
 		utils_set_entry_error ((GtkWidget*) self->priv->entry, FALSE);
 		return;
 	}
-	text = g_strdup (gtk_entry_get_text (self->priv->entry));
+	_tmp1_ = gtk_entry_get_text (self->priv->entry);
+	_tmp2_ = g_strdup (_tmp1_);
+	text = _tmp2_;
 	{
 		gint i;
 		i = 0;
 		{
-			gboolean _tmp0_;
-			_tmp0_ = TRUE;
+			gboolean _tmp3_;
+			_tmp3_ = TRUE;
 			while (TRUE) {
+				gint _tmp4_;
+				gchar _tmp5_;
 				gunichar c;
-				if (!_tmp0_) {
+				gboolean _tmp6_;
+				if (!_tmp3_) {
 					i++;
 				}
-				_tmp0_ = FALSE;
-				if (!(i < string_get_length (text))) {
+				_tmp3_ = FALSE;
+				_tmp4_ = strlen (text);
+				if (!(i < _tmp4_)) {
 					break;
 				}
-				c = g_utf8_get_char (g_utf8_offset_to_pointer (text, i));
-				if (!g_unichar_isdigit (c)) {
+				_tmp5_ = string_get (text, (glong) i);
+				c = (gunichar) _tmp5_;
+				_tmp6_ = g_unichar_isdigit (c);
+				if (!_tmp6_) {
 					utils_set_entry_error ((GtkWidget*) self->priv->entry, TRUE);
 					_g_free0 (text);
 					return;
@@ -383,10 +412,15 @@ static void goto_line_on_changed (GotoLine* self) {
 			}
 		}
 	}
-	line = atoi (text);
-	_error_ = !document_goto_line (main_window_get_active_document (self->priv->main_window), line = line - 1);
+	_tmp7_ = atoi (text);
+	line = _tmp7_;
+	_tmp8_ = main_window_get_active_document (self->priv->main_window);
+	line = line - 1;
+	_tmp9_ = document_goto_line (_tmp8_, line);
+	_error_ = !_tmp9_;
 	utils_set_entry_error ((GtkWidget*) self->priv->entry, _error_);
-	document_view_scroll_to_cursor (main_window_get_active_view (self->priv->main_window), 0.25);
+	_tmp10_ = main_window_get_active_view (self->priv->main_window);
+	document_view_scroll_to_cursor (_tmp10_, 0.25);
 	_g_free0 (text);
 }
 
@@ -423,6 +457,27 @@ GType goto_line_get_type (void) {
 }
 
 
+static Block13Data* block13_data_ref (Block13Data* _data13_) {
+	g_atomic_int_inc (&_data13_->_ref_count_);
+	return _data13_;
+}
+
+
+static void block13_data_unref (Block13Data* _data13_) {
+	if (g_atomic_int_dec_and_test (&_data13_->_ref_count_)) {
+		_g_object_unref0 (_data13_->self);
+		_g_object_unref0 (_data13_->menu);
+		_g_object_unref0 (_data13_->button_next);
+		_g_object_unref0 (_data13_->button_previous);
+		_g_object_unref0 (_data13_->button_replace_all);
+		_g_object_unref0 (_data13_->button_replace);
+		_g_object_unref0 (_data13_->button_clear_replace);
+		_g_object_unref0 (_data13_->button_clear_find);
+		g_slice_free (Block13Data, _data13_);
+	}
+}
+
+
 static gpointer _g_object_ref0 (gpointer self) {
 	return self ? g_object_ref (self) : NULL;
 }
@@ -444,7 +499,9 @@ static void __lambda26__gtk_entry_icon_press (GtkEntry* _sender, GtkEntryIconPos
 
 
 static void _lambda27_ (SearchAndReplace* self) {
-	if (search_and_replace_get_search_and_replace_mode (self)) {
+	gboolean _tmp0_;
+	_tmp0_ = search_and_replace_get_search_and_replace_mode (self);
+	if (_tmp0_) {
 		g_object_set (self->priv->arrow, "arrow-type", GTK_ARROW_DOWN, NULL);
 		gtk_widget_hide ((GtkWidget*) self->priv->frame_replace);
 		gtk_widget_hide ((GtkWidget*) self->priv->hbox_replace);
@@ -510,20 +567,26 @@ static void _search_and_replace_search_forward_gtk_entry_activate (GtkEntry* _se
 
 static void _lambda31_ (Block13Data* _data13_) {
 	SearchAndReplace * self;
+	guint _tmp0_;
 	gboolean sensitive;
+	guint _tmp1_;
 	self = _data13_->self;
-	sensitive = gtk_entry_get_text_length (self->priv->entry_find) > 0;
+	_tmp0_ = gtk_entry_get_text_length (self->priv->entry_find);
+	sensitive = _tmp0_ > 0;
 	gtk_widget_set_sensitive ((GtkWidget*) _data13_->button_clear_find, sensitive);
 	gtk_widget_set_sensitive ((GtkWidget*) _data13_->button_previous, sensitive);
 	gtk_widget_set_sensitive ((GtkWidget*) _data13_->button_next, sensitive);
 	gtk_widget_set_sensitive ((GtkWidget*) _data13_->button_replace, sensitive);
 	gtk_widget_set_sensitive ((GtkWidget*) _data13_->button_replace_all, sensitive);
-	if (gtk_entry_get_text_length (self->priv->entry_find) == 0) {
+	_tmp1_ = gtk_entry_get_text_length (self->priv->entry_find);
+	if (_tmp1_ == 0) {
 		gtk_widget_hide ((GtkWidget*) self->priv->label_find_normal);
 		gtk_widget_hide ((GtkWidget*) self->priv->label_find_error);
 		search_and_replace_clear_search (self);
 	} else {
-		if (gtk_entry_get_text_length (self->priv->entry_find) >= self->priv->min_nb_chars_for_incremental_search) {
+		guint _tmp2_;
+		_tmp2_ = gtk_entry_get_text_length (self->priv->entry_find);
+		if (_tmp2_ >= self->priv->min_nb_chars_for_incremental_search) {
 			search_and_replace_set_search_text (self, TRUE);
 		}
 	}
@@ -537,8 +600,10 @@ static void __lambda31__gtk_editable_changed (GtkEditable* _sender, gpointer sel
 
 static void _lambda32_ (Block13Data* _data13_) {
 	SearchAndReplace * self;
+	guint _tmp0_;
 	self = _data13_->self;
-	gtk_widget_set_sensitive ((GtkWidget*) _data13_->button_clear_replace, gtk_entry_get_text_length (self->priv->entry_replace) > 0);
+	_tmp0_ = gtk_entry_get_text_length (self->priv->entry_replace);
+	gtk_widget_set_sensitive ((GtkWidget*) _data13_->button_clear_replace, _tmp0_ > 0);
 }
 
 
@@ -578,9 +643,13 @@ static void _search_and_replace_replace_gtk_entry_activate (GtkEntry* _sender, g
 
 
 static void _lambda35_ (SearchAndReplace* self) {
-	g_return_if_fail (gtk_entry_get_text_length (self->priv->entry_find) != 0);
+	guint _tmp0_;
+	const gchar* _tmp1_ = NULL;
+	_tmp0_ = gtk_entry_get_text_length (self->priv->entry_find);
+	g_return_if_fail (_tmp0_ != 0);
 	search_and_replace_set_search_text (self, TRUE);
-	document_replace_all (self->priv->working_document, gtk_entry_get_text (self->priv->entry_replace));
+	_tmp1_ = gtk_entry_get_text (self->priv->entry_replace);
+	document_replace_all (self->priv->working_document, _tmp1_);
 }
 
 
@@ -591,14 +660,27 @@ static void __lambda35__gtk_button_clicked (GtkButton* _sender, gpointer self) {
 
 static gboolean _lambda36_ (GdkEventKey* event, SearchAndReplace* self) {
 	gboolean result = FALSE;
-	if ((*event).keyval == 0xff09) {
-		search_and_replace_show_search_and_replace (self);
-		gtk_widget_grab_focus ((GtkWidget*) self->priv->entry_replace);
-		result = TRUE;
-		return result;
+	switch ((*event).keyval) {
+		case 0xff09:
+		{
+			search_and_replace_show_search_and_replace (self);
+			gtk_widget_grab_focus ((GtkWidget*) self->priv->entry_replace);
+			result = TRUE;
+			return result;
+		}
+		case 0xff1b:
+		{
+			search_and_replace_select_selected_search_text (self);
+			search_and_replace_hide (self);
+			result = TRUE;
+			return result;
+		}
+		default:
+		{
+			result = FALSE;
+			return result;
+		}
 	}
-	result = FALSE;
-	return result;
 }
 
 
@@ -609,129 +691,198 @@ static gboolean __lambda36__gtk_widget_key_press_event (GtkWidget* _sender, GdkE
 }
 
 
-static Block13Data* block13_data_ref (Block13Data* _data13_) {
-	g_atomic_int_inc (&_data13_->_ref_count_);
-	return _data13_;
-}
-
-
-static void block13_data_unref (Block13Data* _data13_) {
-	if (g_atomic_int_dec_and_test (&_data13_->_ref_count_)) {
-		_g_object_unref0 (_data13_->self);
-		_g_object_unref0 (_data13_->menu);
-		_g_object_unref0 (_data13_->button_next);
-		_g_object_unref0 (_data13_->button_previous);
-		_g_object_unref0 (_data13_->button_replace_all);
-		_g_object_unref0 (_data13_->button_replace);
-		_g_object_unref0 (_data13_->button_clear_replace);
-		_g_object_unref0 (_data13_->button_clear_find);
-		g_slice_free (Block13Data, _data13_);
-	}
-}
-
-
 SearchAndReplace* search_and_replace_construct (GType object_type, MainWindow* main_window) {
 	SearchAndReplace * self = NULL;
-	char* path;
+	gchar* _tmp0_ = NULL;
+	gchar* path;
+	Block13Data* _data13_;
+	GtkBuilder* _tmp1_ = NULL;
+	GtkBuilder* builder;
+	GObject* _tmp2_ = NULL;
+	GtkWidget* _tmp3_;
+	GObject* _tmp4_ = NULL;
+	GtkButton* _tmp5_;
+	GObject* _tmp6_ = NULL;
+	GtkArrow* _tmp7_;
+	GObject* _tmp8_ = NULL;
+	GtkEntry* _tmp9_;
+	GObject* _tmp10_ = NULL;
+	GtkLabel* _tmp11_;
+	GObject* _tmp12_ = NULL;
+	GtkLabel* _tmp13_;
+	GObject* _tmp14_ = NULL;
+	GtkEventBox* _tmp15_;
+	GtkEventBox* eventbox_label1;
+	GObject* _tmp16_ = NULL;
+	GtkEventBox* _tmp17_;
+	GtkEventBox* eventbox_label2;
+	GObject* _tmp18_ = NULL;
+	GtkButton* _tmp19_;
+	GObject* _tmp20_ = NULL;
+	GtkEntry* _tmp21_;
+	GObject* _tmp22_ = NULL;
+	GtkFrame* _tmp23_;
+	GObject* _tmp24_ = NULL;
+	GtkButton* _tmp25_;
+	GObject* _tmp26_ = NULL;
+	GtkButton* _tmp27_;
+	GObject* _tmp28_ = NULL;
+	GtkButton* _tmp29_;
+	GObject* _tmp30_ = NULL;
+	GtkHBox* _tmp31_;
+	GObject* _tmp32_ = NULL;
+	GtkButton* _tmp33_;
+	GObject* _tmp34_ = NULL;
+	GtkButton* _tmp35_;
+	GObject* _tmp36_ = NULL;
+	GtkButton* _tmp37_;
+	GtkButton* button_close;
+	GdkColor white = {0};
+	GdkColor _tmp38_ = {0};
+	GtkMenu* _tmp39_ = NULL;
+	const gchar* _tmp40_ = NULL;
+	GtkCheckMenuItem* _tmp41_ = NULL;
+	const gchar* _tmp42_ = NULL;
+	GtkCheckMenuItem* _tmp43_ = NULL;
 	GError * _inner_error_ = NULL;
 	g_return_val_if_fail (main_window != NULL, NULL);
 	self = (SearchAndReplace*) g_object_new (object_type, NULL);
 	self->priv->main_window = main_window;
-	path = g_build_filename (DATA_DIR, "ui", "search_and_replace.ui", NULL);
-	{
-		Block13Data* _data13_;
-		GtkBuilder* builder;
-		GtkWidget* _tmp0_;
-		GtkButton* _tmp1_;
-		GtkArrow* _tmp2_;
-		GtkEntry* _tmp3_;
-		GtkLabel* _tmp4_;
-		GtkLabel* _tmp5_;
-		GtkEventBox* eventbox_label1;
-		GtkEventBox* eventbox_label2;
-		GtkEntry* _tmp6_;
-		GtkFrame* _tmp7_;
-		GtkHBox* _tmp8_;
-		GtkButton* button_close;
-		GdkColor white = {0};
-		GtkCheckMenuItem* _tmp9_;
-		GtkCheckMenuItem* _tmp10_;
-		_data13_ = g_slice_new0 (Block13Data);
-		_data13_->_ref_count_ = 1;
-		_data13_->self = g_object_ref (self);
-		builder = gtk_builder_new ();
-		gtk_builder_add_from_file (builder, path, &_inner_error_);
-		if (_inner_error_ != NULL) {
-			_g_object_unref0 (builder);
-			block13_data_unref (_data13_);
-			goto __catch32_g_error;
-		}
-		self->priv->widget = (_tmp0_ = _g_object_ref0 (GTK_WIDGET (gtk_builder_get_object (builder, "search_and_replace"))), _g_object_unref0 (self->priv->widget), _tmp0_);
-		gtk_widget_unparent (self->priv->widget);
-		self->priv->button_arrow = (_tmp1_ = _g_object_ref0 (GTK_BUTTON (gtk_builder_get_object (builder, "button_arrow"))), _g_object_unref0 (self->priv->button_arrow), _tmp1_);
-		self->priv->arrow = (_tmp2_ = _g_object_ref0 (GTK_ARROW (gtk_builder_get_object (builder, "arrow"))), _g_object_unref0 (self->priv->arrow), _tmp2_);
-		self->priv->entry_find = (_tmp3_ = _g_object_ref0 (GTK_ENTRY (gtk_builder_get_object (builder, "entry_find"))), _g_object_unref0 (self->priv->entry_find), _tmp3_);
-		self->priv->label_find_normal = (_tmp4_ = _g_object_ref0 (GTK_LABEL (gtk_builder_get_object (builder, "label_find_normal"))), _g_object_unref0 (self->priv->label_find_normal), _tmp4_);
-		self->priv->label_find_error = (_tmp5_ = _g_object_ref0 (GTK_LABEL (gtk_builder_get_object (builder, "label_find_error"))), _g_object_unref0 (self->priv->label_find_error), _tmp5_);
-		eventbox_label1 = _g_object_ref0 (GTK_EVENT_BOX (gtk_builder_get_object (builder, "eventbox_label1")));
-		eventbox_label2 = _g_object_ref0 (GTK_EVENT_BOX (gtk_builder_get_object (builder, "eventbox_label2")));
-		_data13_->button_clear_find = _g_object_ref0 (GTK_BUTTON (gtk_builder_get_object (builder, "button_clear_find")));
-		self->priv->entry_replace = (_tmp6_ = _g_object_ref0 (GTK_ENTRY (gtk_builder_get_object (builder, "entry_replace"))), _g_object_unref0 (self->priv->entry_replace), _tmp6_);
-		self->priv->frame_replace = (_tmp7_ = _g_object_ref0 (GTK_FRAME (gtk_builder_get_object (builder, "frame_replace"))), _g_object_unref0 (self->priv->frame_replace), _tmp7_);
-		_data13_->button_clear_replace = _g_object_ref0 (GTK_BUTTON (gtk_builder_get_object (builder, "button_clear_replace")));
-		_data13_->button_replace = _g_object_ref0 (GTK_BUTTON (gtk_builder_get_object (builder, "button_replace")));
-		_data13_->button_replace_all = _g_object_ref0 (GTK_BUTTON (gtk_builder_get_object (builder, "button_replace_all")));
-		self->priv->hbox_replace = (_tmp8_ = _g_object_ref0 (GTK_HBOX (gtk_builder_get_object (builder, "hbox_replace"))), _g_object_unref0 (self->priv->hbox_replace), _tmp8_);
-		_data13_->button_previous = _g_object_ref0 (GTK_BUTTON (gtk_builder_get_object (builder, "button_previous")));
-		_data13_->button_next = _g_object_ref0 (GTK_BUTTON (gtk_builder_get_object (builder, "button_next")));
-		button_close = _g_object_ref0 (GTK_BUTTON (gtk_builder_get_object (builder, "button_close")));
-		gdk_color_parse ("white", &white);
-		gtk_widget_modify_bg ((GtkWidget*) eventbox_label1, GTK_STATE_NORMAL, &white);
-		gtk_widget_modify_bg ((GtkWidget*) eventbox_label2, GTK_STATE_NORMAL, &white);
-		_data13_->menu = g_object_ref_sink ((GtkMenu*) gtk_menu_new ());
-		self->priv->check_case_sensitive = (_tmp9_ = g_object_ref_sink ((GtkCheckMenuItem*) gtk_check_menu_item_new_with_label (_ ("Case sensitive"))), _g_object_unref0 (self->priv->check_case_sensitive), _tmp9_);
-		self->priv->check_entire_word = (_tmp10_ = g_object_ref_sink ((GtkCheckMenuItem*) gtk_check_menu_item_new_with_label (_ ("Entire words only"))), _g_object_unref0 (self->priv->check_entire_word), _tmp10_);
-		gtk_menu_shell_append ((GtkMenuShell*) _data13_->menu, (GtkWidget*) ((GtkMenuItem*) self->priv->check_case_sensitive));
-		gtk_menu_shell_append ((GtkMenuShell*) _data13_->menu, (GtkWidget*) ((GtkMenuItem*) self->priv->check_entire_word));
-		gtk_widget_show_all ((GtkWidget*) _data13_->menu);
-		g_signal_connect_data (self->priv->entry_find, "icon-press", (GCallback) __lambda26__gtk_entry_icon_press, block13_data_ref (_data13_), (GClosureNotify) block13_data_unref, 0);
-		g_signal_connect_object (self->priv->button_arrow, "clicked", (GCallback) __lambda27__gtk_button_clicked, self, 0);
-		g_signal_connect_object (button_close, "clicked", (GCallback) _search_and_replace_hide_gtk_button_clicked, self, 0);
-		g_signal_connect_object (_data13_->button_clear_find, "clicked", (GCallback) __lambda28__gtk_button_clicked, self, 0);
-		g_signal_connect_object (_data13_->button_clear_replace, "clicked", (GCallback) __lambda29__gtk_button_clicked, self, 0);
-		g_signal_connect_object (_data13_->button_previous, "clicked", (GCallback) __lambda30__gtk_button_clicked, self, 0);
-		g_signal_connect_object (_data13_->button_next, "clicked", (GCallback) _search_and_replace_search_forward_gtk_button_clicked, self, 0);
-		g_signal_connect_object (self->priv->entry_find, "activate", (GCallback) _search_and_replace_search_forward_gtk_entry_activate, self, 0);
-		g_signal_connect_data ((GtkEditable*) self->priv->entry_find, "changed", (GCallback) __lambda31__gtk_editable_changed, block13_data_ref (_data13_), (GClosureNotify) block13_data_unref, 0);
-		g_signal_connect_data ((GtkEditable*) self->priv->entry_replace, "changed", (GCallback) __lambda32__gtk_editable_changed, block13_data_ref (_data13_), (GClosureNotify) block13_data_unref, 0);
-		g_signal_connect_object (self->priv->check_case_sensitive, "toggled", (GCallback) __lambda33__gtk_check_menu_item_toggled, self, 0);
-		g_signal_connect_object (self->priv->check_entire_word, "toggled", (GCallback) __lambda34__gtk_check_menu_item_toggled, self, 0);
-		g_signal_connect_object (_data13_->button_replace, "clicked", (GCallback) _search_and_replace_replace_gtk_button_clicked, self, 0);
-		g_signal_connect_object (self->priv->entry_replace, "activate", (GCallback) _search_and_replace_replace_gtk_entry_activate, self, 0);
-		g_signal_connect_object (_data13_->button_replace_all, "clicked", (GCallback) __lambda35__gtk_button_clicked, self, 0);
-		g_signal_connect_object ((GtkWidget*) self->priv->entry_find, "key-press-event", (GCallback) __lambda36__gtk_widget_key_press_event, self, 0);
-		_g_object_unref0 (button_close);
-		_g_object_unref0 (eventbox_label2);
-		_g_object_unref0 (eventbox_label1);
+	_tmp0_ = g_build_filename (DATA_DIR, "ui", "search_and_replace.ui", NULL);
+	path = _tmp0_;
+	_data13_ = g_slice_new0 (Block13Data);
+	_data13_->_ref_count_ = 1;
+	_data13_->self = g_object_ref (self);
+	_tmp1_ = gtk_builder_new ();
+	builder = _tmp1_;
+	gtk_builder_add_from_file (builder, path, &_inner_error_);
+	if (_inner_error_ != NULL) {
 		_g_object_unref0 (builder);
 		block13_data_unref (_data13_);
+		_data13_ = NULL;
+		goto __catch32_g_error;
 	}
+	_tmp2_ = gtk_builder_get_object (builder, "search_and_replace");
+	_tmp3_ = _g_object_ref0 (GTK_WIDGET (_tmp2_));
+	_g_object_unref0 (self->priv->widget);
+	self->priv->widget = _tmp3_;
+	gtk_widget_unparent (self->priv->widget);
+	_tmp4_ = gtk_builder_get_object (builder, "button_arrow");
+	_tmp5_ = _g_object_ref0 (GTK_BUTTON (_tmp4_));
+	_g_object_unref0 (self->priv->button_arrow);
+	self->priv->button_arrow = _tmp5_;
+	_tmp6_ = gtk_builder_get_object (builder, "arrow");
+	_tmp7_ = _g_object_ref0 (GTK_ARROW (_tmp6_));
+	_g_object_unref0 (self->priv->arrow);
+	self->priv->arrow = _tmp7_;
+	_tmp8_ = gtk_builder_get_object (builder, "entry_find");
+	_tmp9_ = _g_object_ref0 (GTK_ENTRY (_tmp8_));
+	_g_object_unref0 (self->priv->entry_find);
+	self->priv->entry_find = _tmp9_;
+	_tmp10_ = gtk_builder_get_object (builder, "label_find_normal");
+	_tmp11_ = _g_object_ref0 (GTK_LABEL (_tmp10_));
+	_g_object_unref0 (self->priv->label_find_normal);
+	self->priv->label_find_normal = _tmp11_;
+	_tmp12_ = gtk_builder_get_object (builder, "label_find_error");
+	_tmp13_ = _g_object_ref0 (GTK_LABEL (_tmp12_));
+	_g_object_unref0 (self->priv->label_find_error);
+	self->priv->label_find_error = _tmp13_;
+	_tmp14_ = gtk_builder_get_object (builder, "eventbox_label1");
+	_tmp15_ = _g_object_ref0 (GTK_EVENT_BOX (_tmp14_));
+	eventbox_label1 = _tmp15_;
+	_tmp16_ = gtk_builder_get_object (builder, "eventbox_label2");
+	_tmp17_ = _g_object_ref0 (GTK_EVENT_BOX (_tmp16_));
+	eventbox_label2 = _tmp17_;
+	_tmp18_ = gtk_builder_get_object (builder, "button_clear_find");
+	_tmp19_ = _g_object_ref0 (GTK_BUTTON (_tmp18_));
+	_data13_->button_clear_find = _tmp19_;
+	_tmp20_ = gtk_builder_get_object (builder, "entry_replace");
+	_tmp21_ = _g_object_ref0 (GTK_ENTRY (_tmp20_));
+	_g_object_unref0 (self->priv->entry_replace);
+	self->priv->entry_replace = _tmp21_;
+	_tmp22_ = gtk_builder_get_object (builder, "frame_replace");
+	_tmp23_ = _g_object_ref0 (GTK_FRAME (_tmp22_));
+	_g_object_unref0 (self->priv->frame_replace);
+	self->priv->frame_replace = _tmp23_;
+	_tmp24_ = gtk_builder_get_object (builder, "button_clear_replace");
+	_tmp25_ = _g_object_ref0 (GTK_BUTTON (_tmp24_));
+	_data13_->button_clear_replace = _tmp25_;
+	_tmp26_ = gtk_builder_get_object (builder, "button_replace");
+	_tmp27_ = _g_object_ref0 (GTK_BUTTON (_tmp26_));
+	_data13_->button_replace = _tmp27_;
+	_tmp28_ = gtk_builder_get_object (builder, "button_replace_all");
+	_tmp29_ = _g_object_ref0 (GTK_BUTTON (_tmp28_));
+	_data13_->button_replace_all = _tmp29_;
+	_tmp30_ = gtk_builder_get_object (builder, "hbox_replace");
+	_tmp31_ = _g_object_ref0 (GTK_HBOX (_tmp30_));
+	_g_object_unref0 (self->priv->hbox_replace);
+	self->priv->hbox_replace = _tmp31_;
+	_tmp32_ = gtk_builder_get_object (builder, "button_previous");
+	_tmp33_ = _g_object_ref0 (GTK_BUTTON (_tmp32_));
+	_data13_->button_previous = _tmp33_;
+	_tmp34_ = gtk_builder_get_object (builder, "button_next");
+	_tmp35_ = _g_object_ref0 (GTK_BUTTON (_tmp34_));
+	_data13_->button_next = _tmp35_;
+	_tmp36_ = gtk_builder_get_object (builder, "button_close");
+	_tmp37_ = _g_object_ref0 (GTK_BUTTON (_tmp36_));
+	button_close = _tmp37_;
+	gdk_color_parse ("white", &_tmp38_);
+	white = _tmp38_;
+	gtk_widget_modify_bg ((GtkWidget*) eventbox_label1, GTK_STATE_NORMAL, &white);
+	gtk_widget_modify_bg ((GtkWidget*) eventbox_label2, GTK_STATE_NORMAL, &white);
+	_tmp39_ = (GtkMenu*) gtk_menu_new ();
+	_data13_->menu = g_object_ref_sink (_tmp39_);
+	_tmp40_ = _ ("Case sensitive");
+	_tmp41_ = (GtkCheckMenuItem*) gtk_check_menu_item_new_with_label (_tmp40_);
+	_g_object_unref0 (self->priv->check_case_sensitive);
+	self->priv->check_case_sensitive = g_object_ref_sink (_tmp41_);
+	_tmp42_ = _ ("Entire words only");
+	_tmp43_ = (GtkCheckMenuItem*) gtk_check_menu_item_new_with_label (_tmp42_);
+	_g_object_unref0 (self->priv->check_entire_word);
+	self->priv->check_entire_word = g_object_ref_sink (_tmp43_);
+	gtk_menu_shell_append ((GtkMenuShell*) _data13_->menu, (GtkWidget*) ((GtkMenuItem*) self->priv->check_case_sensitive));
+	gtk_menu_shell_append ((GtkMenuShell*) _data13_->menu, (GtkWidget*) ((GtkMenuItem*) self->priv->check_entire_word));
+	gtk_widget_show_all ((GtkWidget*) _data13_->menu);
+	g_signal_connect_data (self->priv->entry_find, "icon-press", (GCallback) __lambda26__gtk_entry_icon_press, block13_data_ref (_data13_), (GClosureNotify) block13_data_unref, 0);
+	g_signal_connect_object (self->priv->button_arrow, "clicked", (GCallback) __lambda27__gtk_button_clicked, self, 0);
+	g_signal_connect_object (button_close, "clicked", (GCallback) _search_and_replace_hide_gtk_button_clicked, self, 0);
+	g_signal_connect_object (_data13_->button_clear_find, "clicked", (GCallback) __lambda28__gtk_button_clicked, self, 0);
+	g_signal_connect_object (_data13_->button_clear_replace, "clicked", (GCallback) __lambda29__gtk_button_clicked, self, 0);
+	g_signal_connect_object (_data13_->button_previous, "clicked", (GCallback) __lambda30__gtk_button_clicked, self, 0);
+	g_signal_connect_object (_data13_->button_next, "clicked", (GCallback) _search_and_replace_search_forward_gtk_button_clicked, self, 0);
+	g_signal_connect_object (self->priv->entry_find, "activate", (GCallback) _search_and_replace_search_forward_gtk_entry_activate, self, 0);
+	g_signal_connect_data ((GtkEditable*) self->priv->entry_find, "changed", (GCallback) __lambda31__gtk_editable_changed, block13_data_ref (_data13_), (GClosureNotify) block13_data_unref, 0);
+	g_signal_connect_data ((GtkEditable*) self->priv->entry_replace, "changed", (GCallback) __lambda32__gtk_editable_changed, block13_data_ref (_data13_), (GClosureNotify) block13_data_unref, 0);
+	g_signal_connect_object (self->priv->check_case_sensitive, "toggled", (GCallback) __lambda33__gtk_check_menu_item_toggled, self, 0);
+	g_signal_connect_object (self->priv->check_entire_word, "toggled", (GCallback) __lambda34__gtk_check_menu_item_toggled, self, 0);
+	g_signal_connect_object (_data13_->button_replace, "clicked", (GCallback) _search_and_replace_replace_gtk_button_clicked, self, 0);
+	g_signal_connect_object (self->priv->entry_replace, "activate", (GCallback) _search_and_replace_replace_gtk_entry_activate, self, 0);
+	g_signal_connect_object (_data13_->button_replace_all, "clicked", (GCallback) __lambda35__gtk_button_clicked, self, 0);
+	g_signal_connect_object ((GtkWidget*) self->priv->entry_find, "key-press-event", (GCallback) __lambda36__gtk_widget_key_press_event, self, 0);
+	_g_object_unref0 (button_close);
+	_g_object_unref0 (eventbox_label2);
+	_g_object_unref0 (eventbox_label1);
+	_g_object_unref0 (builder);
+	block13_data_unref (_data13_);
+	_data13_ = NULL;
 	goto __finally32;
 	__catch32_g_error:
 	{
 		GError * e;
+		GtkLabel* _tmp44_ = NULL;
+		GtkLabel* label;
+		GtkWidget* _tmp45_;
 		e = _inner_error_;
 		_inner_error_ = NULL;
-		{
-			GtkLabel* label;
-			GtkWidget* _tmp11_;
-			fprintf (stderr, "Error search and replace: %s\n", e->message);
-			label = g_object_ref_sink ((GtkLabel*) gtk_label_new (e->message));
-			gtk_label_set_line_wrap (label, TRUE);
-			self->priv->widget = (_tmp11_ = _g_object_ref0 ((GtkWidget*) label), _g_object_unref0 (self->priv->widget), _tmp11_);
-			_g_object_unref0 (label);
-			_g_error_free0 (e);
-		}
+		fprintf (stderr, "Error search and replace: %s\n", e->message);
+		_tmp44_ = (GtkLabel*) gtk_label_new (e->message);
+		label = g_object_ref_sink (_tmp44_);
+		gtk_label_set_line_wrap (label, TRUE);
+		_tmp45_ = _g_object_ref0 ((GtkWidget*) label);
+		_g_object_unref0 (self->priv->widget);
+		self->priv->widget = _tmp45_;
+		_g_object_unref0 (label);
+		_g_error_free0 (e);
 	}
 	__finally32:
 	if (_inner_error_ != NULL) {
@@ -753,8 +904,10 @@ SearchAndReplace* search_and_replace_new (MainWindow* main_window) {
 
 GtkWidget* search_and_replace_get_widget (SearchAndReplace* self) {
 	GtkWidget* result = NULL;
+	GtkWidget* _tmp0_;
 	g_return_val_if_fail (self != NULL, NULL);
-	result = _g_object_ref0 (self->priv->widget);
+	_tmp0_ = _g_object_ref0 (self->priv->widget);
+	result = _tmp0_;
 	return result;
 }
 
@@ -781,22 +934,37 @@ static void _search_and_replace_active_document_changed_g_object_notify (GObject
 
 
 static void search_and_replace_show (SearchAndReplace* self) {
+	DocumentTab* _tmp0_ = NULL;
+	Document* _tmp1_ = NULL;
+	Document* _tmp2_;
 	Document* doc;
+	SelectionType _tmp3_;
 	g_return_if_fail (self != NULL);
-	g_return_if_fail (main_window_get_active_tab (self->priv->main_window) != NULL);
+	_tmp0_ = main_window_get_active_tab (self->priv->main_window);
+	g_return_if_fail (_tmp0_ != NULL);
 	gtk_widget_show_all (self->priv->widget);
 	gtk_widget_hide ((GtkWidget*) self->priv->label_find_normal);
 	gtk_widget_hide ((GtkWidget*) self->priv->label_find_error);
 	gtk_widget_grab_focus ((GtkWidget*) self->priv->entry_find);
 	search_and_replace_set_replace_sensitivity (self);
-	doc = _g_object_ref0 (main_window_get_active_document (self->priv->main_window));
-	if (document_get_selection_type (doc) == SELECTION_TYPE_ONE_LINE) {
+	_tmp1_ = main_window_get_active_document (self->priv->main_window);
+	_tmp2_ = _g_object_ref0 (_tmp1_);
+	doc = _tmp2_;
+	_tmp3_ = document_get_selection_type (doc);
+	if (_tmp3_ == SELECTION_TYPE_ONE_LINE) {
 		GtkTextIter start = {0};
 		GtkTextIter end = {0};
-		char* _tmp0_;
-		gtk_text_buffer_get_selection_bounds ((GtkTextBuffer*) doc, &start, &end);
-		gtk_entry_set_text (self->priv->entry_find, _tmp0_ = gtk_text_buffer_get_text ((GtkTextBuffer*) doc, &start, &end, FALSE));
-		_g_free0 (_tmp0_);
+		GtkTextIter _tmp4_ = {0};
+		GtkTextIter _tmp5_ = {0};
+		gchar* _tmp6_ = NULL;
+		gchar* _tmp7_;
+		gtk_text_buffer_get_selection_bounds ((GtkTextBuffer*) doc, &_tmp4_, &_tmp5_);
+		start = _tmp4_;
+		end = _tmp5_;
+		_tmp6_ = gtk_text_buffer_get_text ((GtkTextBuffer*) doc, &start, &end, FALSE);
+		_tmp7_ = _tmp6_;
+		gtk_entry_set_text (self->priv->entry_find, _tmp7_);
+		_g_free0 (_tmp7_);
 	}
 	g_signal_connect_object ((GObject*) self->priv->main_window, "notify::active-document", (GCallback) _search_and_replace_active_document_changed_g_object_notify, self, 0);
 	_g_object_unref0 (doc);
@@ -804,19 +972,26 @@ static void search_and_replace_show (SearchAndReplace* self) {
 
 
 void search_and_replace_hide (SearchAndReplace* self) {
-	guint _tmp0_;
-	GQuark _tmp1_;
+	DocumentView* _tmp0_ = NULL;
+	guint _tmp2_;
+	GQuark _tmp3_;
 	g_return_if_fail (self != NULL);
 	gtk_widget_hide (self->priv->widget);
 	if (self->priv->working_document != NULL) {
 		search_and_replace_clear_search (self);
 	}
-	g_signal_parse_name ("notify::active-document", G_TYPE_OBJECT, &_tmp0_, &_tmp1_, TRUE);
-	g_signal_handlers_disconnect_matched ((GObject*) self->priv->main_window, G_SIGNAL_MATCH_ID | G_SIGNAL_MATCH_DETAIL | G_SIGNAL_MATCH_FUNC | G_SIGNAL_MATCH_DATA, _tmp0_, _tmp1_, NULL, (GCallback) _search_and_replace_active_document_changed_g_object_notify, self);
+	_tmp0_ = main_window_get_active_view (self->priv->main_window);
+	if (_tmp0_ != NULL) {
+		DocumentView* _tmp1_ = NULL;
+		_tmp1_ = main_window_get_active_view (self->priv->main_window);
+		gtk_widget_grab_focus ((GtkWidget*) _tmp1_);
+	}
+	g_signal_parse_name ("notify::active-document", G_TYPE_OBJECT, &_tmp2_, &_tmp3_, TRUE);
+	g_signal_handlers_disconnect_matched ((GObject*) self->priv->main_window, G_SIGNAL_MATCH_ID | G_SIGNAL_MATCH_DETAIL | G_SIGNAL_MATCH_FUNC | G_SIGNAL_MATCH_DATA, _tmp2_, _tmp3_, NULL, (GCallback) _search_and_replace_active_document_changed_g_object_notify, self);
 }
 
 
-static void search_and_replace_set_label_text (SearchAndReplace* self, const char* text, gboolean _error_) {
+static void search_and_replace_set_label_text (SearchAndReplace* self, const gchar* text, gboolean _error_) {
 	g_return_if_fail (self != NULL);
 	g_return_if_fail (text != NULL);
 	if (_error_) {
@@ -837,26 +1012,57 @@ static void _search_and_replace_on_search_info_updated_document_search_info_upda
 
 
 static void search_and_replace_set_search_text (SearchAndReplace* self, gboolean select) {
+	Document* _tmp0_ = NULL;
+	guint _tmp1_;
+	Document* _tmp2_ = NULL;
 	guint nb_matches = 0U;
 	guint num_match = 0U;
+	const gchar* _tmp5_ = NULL;
+	gboolean _tmp6_;
+	gboolean _tmp7_;
+	guint _tmp8_;
+	guint _tmp9_;
 	g_return_if_fail (self != NULL);
-	g_return_if_fail (main_window_get_active_document (self->priv->main_window) != NULL);
-	if (gtk_entry_get_text_length (self->priv->entry_find) == 0) {
+	_tmp0_ = main_window_get_active_document (self->priv->main_window);
+	g_return_if_fail (_tmp0_ != NULL);
+	_tmp1_ = gtk_entry_get_text_length (self->priv->entry_find);
+	if (_tmp1_ == 0) {
 		return;
 	}
-	if (main_window_get_active_document (self->priv->main_window) != self->priv->working_document) {
-		Document* _tmp0_;
+	_tmp2_ = main_window_get_active_document (self->priv->main_window);
+	if (_tmp2_ != self->priv->working_document) {
+		Document* _tmp3_ = NULL;
+		Document* _tmp4_;
 		if (self->priv->working_document != NULL) {
 			search_and_replace_clear_search (self);
 		}
-		self->priv->working_document = (_tmp0_ = _g_object_ref0 (main_window_get_active_document (self->priv->main_window)), _g_object_unref0 (self->priv->working_document), _tmp0_);
+		_tmp3_ = main_window_get_active_document (self->priv->main_window);
+		_tmp4_ = _g_object_ref0 (_tmp3_);
+		_g_object_unref0 (self->priv->working_document);
+		self->priv->working_document = _tmp4_;
 		g_signal_connect_object (self->priv->working_document, "search-info-updated", (GCallback) _search_and_replace_on_search_info_updated_document_search_info_updated, self, 0);
 	}
-	document_set_search_text (self->priv->working_document, gtk_entry_get_text (self->priv->entry_find), search_and_replace_get_case_sensitive (self), search_and_replace_get_entire_word (self), &nb_matches, &num_match, select);
+	_tmp5_ = gtk_entry_get_text (self->priv->entry_find);
+	_tmp6_ = search_and_replace_get_case_sensitive (self);
+	_tmp7_ = search_and_replace_get_entire_word (self);
+	document_set_search_text (self->priv->working_document, _tmp5_, _tmp6_, _tmp7_, &_tmp8_, &_tmp9_, select);
+	nb_matches = _tmp8_;
+	num_match = _tmp9_;
 	search_and_replace_on_search_info_updated (self, nb_matches != 0, nb_matches, num_match);
 }
 
 
+static void search_and_replace_select_selected_search_text (SearchAndReplace* self) {
+	Document* _tmp0_ = NULL;
+	g_return_if_fail (self != NULL);
+	_tmp0_ = main_window_get_active_document (self->priv->main_window);
+	g_return_if_fail (_tmp0_ != NULL);
+	if (self->priv->working_document != NULL) {
+	}
+	document_select_selected_search_text (self->priv->working_document);
+}
+
+
 static void search_and_replace_search_forward (SearchAndReplace* self) {
 	g_return_if_fail (self != NULL);
 	search_and_replace_set_search_text (self, FALSE);
@@ -868,19 +1074,33 @@ static void search_and_replace_search_forward (SearchAndReplace* self) {
 static void search_and_replace_on_search_info_updated (SearchAndReplace* self, gboolean selected, guint nb_matches, guint num_match) {
 	g_return_if_fail (self != NULL);
 	if (selected) {
-		char* _tmp0_;
-		search_and_replace_set_label_text (self, _tmp0_ = g_strdup_printf (_ ("%u of %u"), num_match, nb_matches), FALSE);
-		_g_free0 (_tmp0_);
+		const gchar* _tmp0_ = NULL;
+		gchar* _tmp1_ = NULL;
+		gchar* _tmp2_;
+		_tmp0_ = _ ("%u of %u");
+		_tmp1_ = g_strdup_printf (_tmp0_, num_match, nb_matches);
+		_tmp2_ = _tmp1_;
+		search_and_replace_set_label_text (self, _tmp2_, FALSE);
+		_g_free0 (_tmp2_);
 	} else {
 		if (nb_matches == 0) {
-			search_and_replace_set_label_text (self, _ ("Not found"), TRUE);
+			const gchar* _tmp3_ = NULL;
+			_tmp3_ = _ ("Not found");
+			search_and_replace_set_label_text (self, _tmp3_, TRUE);
 		} else {
 			if (nb_matches == 1) {
-				search_and_replace_set_label_text (self, _ ("One match"), FALSE);
+				const gchar* _tmp4_ = NULL;
+				_tmp4_ = _ ("One match");
+				search_and_replace_set_label_text (self, _tmp4_, FALSE);
 			} else {
-				char* _tmp1_;
-				search_and_replace_set_label_text (self, _tmp1_ = g_strdup_printf (_ ("%u matches"), nb_matches), FALSE);
-				_g_free0 (_tmp1_);
+				const gchar* _tmp5_ = NULL;
+				gchar* _tmp6_ = NULL;
+				gchar* _tmp7_;
+				_tmp5_ = _ ("%u matches");
+				_tmp6_ = g_strdup_printf (_tmp5_, nb_matches);
+				_tmp7_ = _tmp6_;
+				search_and_replace_set_label_text (self, _tmp7_, FALSE);
+				_g_free0 (_tmp7_);
 			}
 		}
 	}
@@ -891,11 +1111,11 @@ static void search_and_replace_clear_search (SearchAndReplace* self) {
 	g_return_if_fail (self != NULL);
 	if (self->priv->working_document != NULL) {
 		guint _tmp0_;
-		Document* _tmp1_;
 		document_clear_search (self->priv->working_document, TRUE);
 		g_signal_parse_name ("search-info-updated", TYPE_DOCUMENT, &_tmp0_, NULL, FALSE);
 		g_signal_handlers_disconnect_matched (self->priv->working_document, G_SIGNAL_MATCH_ID | G_SIGNAL_MATCH_FUNC | G_SIGNAL_MATCH_DATA, _tmp0_, 0, NULL, (GCallback) _search_and_replace_on_search_info_updated_document_search_info_updated, self);
-		self->priv->working_document = (_tmp1_ = NULL, _g_object_unref0 (self->priv->working_document), _tmp1_);
+		_g_object_unref0 (self->priv->working_document);
+		self->priv->working_document = NULL;
 	}
 }
 
@@ -909,19 +1129,27 @@ static void search_and_replace_active_document_changed (SearchAndReplace* self)
 
 
 static void search_and_replace_set_replace_sensitivity (SearchAndReplace* self) {
+	Document* _tmp0_ = NULL;
+	gboolean _tmp1_;
 	gboolean readonly;
 	g_return_if_fail (self != NULL);
-	readonly = document_get_readonly (main_window_get_active_document (self->priv->main_window));
+	_tmp0_ = main_window_get_active_document (self->priv->main_window);
+	_tmp1_ = document_get_readonly (_tmp0_);
+	readonly = _tmp1_;
 	gtk_widget_set_sensitive ((GtkWidget*) self->priv->frame_replace, !readonly);
 	gtk_widget_set_sensitive ((GtkWidget*) self->priv->hbox_replace, !readonly);
 }
 
 
 static void search_and_replace_replace (SearchAndReplace* self) {
+	guint _tmp0_;
+	const gchar* _tmp1_ = NULL;
 	g_return_if_fail (self != NULL);
-	g_return_if_fail (gtk_entry_get_text_length (self->priv->entry_find) != 0);
+	_tmp0_ = gtk_entry_get_text_length (self->priv->entry_find);
+	g_return_if_fail (_tmp0_ != 0);
 	search_and_replace_set_search_text (self, TRUE);
-	document_replace (self->priv->working_document, gtk_entry_get_text (self->priv->entry_replace));
+	_tmp1_ = gtk_entry_get_text (self->priv->entry_replace);
+	document_replace (self->priv->working_document, _tmp1_);
 }
 
 
@@ -929,23 +1157,28 @@ static gboolean search_and_replace_get_search_and_replace_mode (SearchAndReplace
 	gboolean result;
 	GtkArrowType _tmp0_;
 	g_return_val_if_fail (self != NULL, FALSE);
-	result = (g_object_get (self->priv->arrow, "arrow-type", &_tmp0_, NULL), _tmp0_) == GTK_ARROW_UP;
+	g_object_get (self->priv->arrow, "arrow-type", &_tmp0_, NULL);
+	result = _tmp0_ == GTK_ARROW_UP;
 	return result;
 }
 
 
 static gboolean search_and_replace_get_case_sensitive (SearchAndReplace* self) {
 	gboolean result;
+	gboolean _tmp0_;
 	g_return_val_if_fail (self != NULL, FALSE);
-	result = gtk_check_menu_item_get_active (self->priv->check_case_sensitive);
+	_tmp0_ = gtk_check_menu_item_get_active (self->priv->check_case_sensitive);
+	result = _tmp0_;
 	return result;
 }
 
 
 static gboolean search_and_replace_get_entire_word (SearchAndReplace* self) {
 	gboolean result;
+	gboolean _tmp0_;
 	g_return_val_if_fail (self != NULL, FALSE);
-	result = gtk_check_menu_item_get_active (self->priv->check_entire_word);
+	_tmp0_ = gtk_check_menu_item_get_active (self->priv->check_entire_word);
+	result = _tmp0_;
 	return result;
 }
 
@@ -953,7 +1186,7 @@ static gboolean search_and_replace_get_entire_word (SearchAndReplace* self) {
 static void search_and_replace_class_init (SearchAndReplaceClass * klass) {
 	search_and_replace_parent_class = g_type_class_peek_parent (klass);
 	g_type_class_add_private (klass, sizeof (SearchAndReplacePrivate));
-	G_OBJECT_CLASS (klass)->get_property = search_and_replace_get_property;
+	G_OBJECT_CLASS (klass)->get_property = _vala_search_and_replace_get_property;
 	G_OBJECT_CLASS (klass)->finalize = search_and_replace_finalize;
 }
 
@@ -995,7 +1228,7 @@ GType search_and_replace_get_type (void) {
 }
 
 
-static void search_and_replace_get_property (GObject * object, guint property_id, GValue * value, GParamSpec * pspec) {
+static void _vala_search_and_replace_get_property (GObject * object, guint property_id, GValue * value, GParamSpec * pspec) {
 	SearchAndReplace * self;
 	self = SEARCH_AND_REPLACE (object);
 	switch (property_id) {
@@ -1007,4 +1240,3 @@ static void search_and_replace_get_property (GObject * object, guint property_id
 
 
 
-
diff --git a/src/C/side_panel.c b/src/C/side_panel.c
index 4040c36..9d7fd6e 100644
--- a/src/C/side_panel.c
+++ b/src/C/side_panel.c
@@ -1,4 +1,4 @@
-/* side_panel.c generated by valac 0.10.3, the Vala compiler
+/* side_panel.c generated by valac 0.12.1, the Vala compiler
  * generated from side_panel.vala, do not modify */
 
 /*
@@ -99,22 +99,21 @@ SidePanel* side_panel_new (MainWindow* main_window, GtkToggleAction* action_view
 SidePanel* side_panel_construct (GType object_type, MainWindow* main_window, GtkToggleAction* action_view_side_panel);
 static GtkComboBox* side_panel_get_combo_box (SidePanel* self);
 static GtkButton* side_panel_get_close_button (SidePanel* self);
-void side_panel_add_component (SidePanel* self, const char* name, const char* stock_id, GtkVBox* component);
-static void _vala_array_add15 (GtkVBox*** array, int* length, int* size, GtkVBox* value);
+void side_panel_add_component (SidePanel* self, const gchar* name, const gchar* stock_id, GtkVBox* component);
+static void _vala_array_add14 (GtkVBox*** array, int* length, int* size, GtkVBox* value);
 void side_panel_restore_state (SidePanel* self);
-static void _lambda47_ (SidePanel* self);
-static void __lambda47__gtk_button_clicked (GtkButton* _sender, gpointer self);
-static void _lambda46_ (Block12Data* _data12_);
-static void __lambda46__gtk_combo_box_changed (GtkComboBox* _sender, gpointer self);
+static void _lambda48_ (SidePanel* self);
+static void __lambda48__gtk_button_clicked (GtkButton* _sender, gpointer self);
 static Block12Data* block12_data_ref (Block12Data* _data12_);
 static void block12_data_unref (Block12Data* _data12_);
+static void _lambda47_ (Block12Data* _data12_);
+static void __lambda47__gtk_combo_box_changed (GtkComboBox* _sender, gpointer self);
 gint side_panel_get_active_component (SidePanel* self);
 static void side_panel_finalize (GObject* obj);
 static void _vala_array_destroy (gpointer array, gint array_length, GDestroyNotify destroy_func);
 static void _vala_array_free (gpointer array, gint array_length, GDestroyNotify destroy_func);
 
 
-
 static GType side_panel_side_panel_column_get_type (void) {
 	static volatile gsize side_panel_side_panel_column_type_id__volatile = 0;
 	if (g_once_init_enter (&side_panel_side_panel_column_type_id__volatile)) {
@@ -128,22 +127,29 @@ static GType side_panel_side_panel_column_get_type (void) {
 
 
 SidePanel* side_panel_construct (GType object_type, MainWindow* main_window, GtkToggleAction* action_view_side_panel) {
-	SidePanel * self;
+	SidePanel * self = NULL;
+	GtkHBox* _tmp0_ = NULL;
 	GtkHBox* hbox;
-	GtkComboBox* _tmp0_;
-	GtkButton* _tmp1_;
+	GtkComboBox* _tmp1_ = NULL;
+	GtkButton* _tmp2_ = NULL;
+	GtkButton* _tmp3_;
 	g_return_val_if_fail (main_window != NULL, NULL);
 	g_return_val_if_fail (action_view_side_panel != NULL, NULL);
-	self = g_object_newv (object_type, 0, NULL);
+	self = (SidePanel*) g_object_new (object_type, NULL);
 	self->priv->main_window = main_window;
 	self->priv->action_view_side_panel = action_view_side_panel;
-	hbox = g_object_ref_sink ((GtkHBox*) gtk_hbox_new (FALSE, 3));
+	_tmp0_ = (GtkHBox*) gtk_hbox_new (FALSE, 3);
+	hbox = g_object_ref_sink (_tmp0_);
 	gtk_container_set_border_width ((GtkContainer*) hbox, (guint) 3);
 	gtk_box_pack_start ((GtkBox*) self, (GtkWidget*) hbox, FALSE, FALSE, (guint) 3);
-	self->priv->combo_box = (_tmp0_ = side_panel_get_combo_box (self), _g_object_unref0 (self->priv->combo_box), _tmp0_);
-	gtk_box_pack_start ((GtkBox*) hbox, (GtkWidget*) self->priv->combo_box, TRUE, TRUE, 0);
-	gtk_box_pack_start ((GtkBox*) hbox, (GtkWidget*) (_tmp1_ = side_panel_get_close_button (self)), FALSE, FALSE, 0);
-	_g_object_unref0 (_tmp1_);
+	_tmp1_ = side_panel_get_combo_box (self);
+	_g_object_unref0 (self->priv->combo_box);
+	self->priv->combo_box = _tmp1_;
+	gtk_box_pack_start ((GtkBox*) hbox, (GtkWidget*) self->priv->combo_box, TRUE, TRUE, (guint) 0);
+	_tmp2_ = side_panel_get_close_button (self);
+	_tmp3_ = _tmp2_;
+	gtk_box_pack_start ((GtkBox*) hbox, (GtkWidget*) _tmp3_, FALSE, FALSE, (guint) 0);
+	_g_object_unref0 (_tmp3_);
 	gtk_widget_show_all ((GtkWidget*) self);
 	_g_object_unref0 (hbox);
 	return self;
@@ -160,7 +166,7 @@ static gpointer _g_object_ref0 (gpointer self) {
 }
 
 
-static void _vala_array_add15 (GtkVBox*** array, int* length, int* size, GtkVBox* value) {
+static void _vala_array_add14 (GtkVBox*** array, int* length, int* size, GtkVBox* value) {
 	if ((*length) == (*size)) {
 		*size = (*size) ? (2 * (*size)) : 4;
 		*array = g_renew (GtkVBox*, *array, (*size) + 1);
@@ -170,61 +176,94 @@ static void _vala_array_add15 (GtkVBox*** array, int* length, int* size, GtkVBox
 }
 
 
-void side_panel_add_component (SidePanel* self, const char* name, const char* stock_id, GtkVBox* component) {
+void side_panel_add_component (SidePanel* self, const gchar* name, const gchar* stock_id, GtkVBox* component) {
 	GtkTreeIter iter = {0};
+	GtkTreeIter _tmp0_ = {0};
+	GtkVBox* _tmp1_;
 	g_return_if_fail (self != NULL);
 	g_return_if_fail (name != NULL);
 	g_return_if_fail (stock_id != NULL);
 	g_return_if_fail (component != NULL);
-	gtk_list_store_append (self->priv->list_store, &iter);
+	gtk_list_store_append (self->priv->list_store, &_tmp0_);
+	iter = _tmp0_;
 	gtk_list_store_set (self->priv->list_store, &iter, SIDE_PANEL_SIDE_PANEL_COLUMN_PIXBUF, stock_id, SIDE_PANEL_SIDE_PANEL_COLUMN_NAME, name, -1, -1);
-	gtk_box_pack_start ((GtkBox*) self, (GtkWidget*) component, TRUE, TRUE, 0);
-	_vala_array_add15 (&self->priv->components, &self->priv->components_length1, &self->priv->_components_size_, _g_object_ref0 (component));
+	gtk_box_pack_start ((GtkBox*) self, (GtkWidget*) component, TRUE, TRUE, (guint) 0);
+	_tmp1_ = _g_object_ref0 (component);
+	_vala_array_add14 (&self->priv->components, &self->priv->components_length1, &self->priv->_components_size_, _tmp1_);
 }
 
 
 void side_panel_restore_state (SidePanel* self) {
+	GSettings* _tmp0_ = NULL;
 	GSettings* settings;
+	gint _tmp1_;
 	gint num;
+	gint _tmp2_;
 	g_return_if_fail (self != NULL);
-	settings = g_settings_new ("org.gnome.latexila.preferences.ui");
-	num = g_settings_get_int (settings, "side-panel-component");
-	num = CLAMP (num, 0, self->priv->components_length1 - 1);
+	_tmp0_ = g_settings_new ("org.gnome.latexila.preferences.ui");
+	settings = _tmp0_;
+	_tmp1_ = g_settings_get_int (settings, "side-panel-component");
+	num = _tmp1_;
+	_tmp2_ = CLAMP (num, 0, self->priv->components_length1 - 1);
+	num = _tmp2_;
 	gtk_combo_box_set_active (self->priv->combo_box, num);
 	_g_object_unref0 (settings);
 }
 
 
-static void _lambda47_ (SidePanel* self) {
+static void _lambda48_ (SidePanel* self) {
 	gtk_widget_hide ((GtkWidget*) self);
 	gtk_toggle_action_set_active (self->priv->action_view_side_panel, FALSE);
 }
 
 
-static void __lambda47__gtk_button_clicked (GtkButton* _sender, gpointer self) {
-	_lambda47_ (self);
+static void __lambda48__gtk_button_clicked (GtkButton* _sender, gpointer self) {
+	_lambda48_ (self);
 }
 
 
 static GtkButton* side_panel_get_close_button (SidePanel* self) {
 	GtkButton* result = NULL;
+	GtkButton* _tmp0_ = NULL;
 	GtkButton* close_button;
-	GtkImage* _tmp0_;
+	const gchar* _tmp1_ = NULL;
+	GtkImage* _tmp2_ = NULL;
+	GtkImage* _tmp3_;
 	g_return_val_if_fail (self != NULL, NULL);
-	close_button = g_object_ref_sink ((GtkButton*) gtk_button_new ());
+	_tmp0_ = (GtkButton*) gtk_button_new ();
+	close_button = g_object_ref_sink (_tmp0_);
 	gtk_button_set_relief (close_button, GTK_RELIEF_NONE);
 	gtk_button_set_focus_on_click (close_button, FALSE);
-	gtk_widget_set_tooltip_text ((GtkWidget*) close_button, _ ("Hide panel"));
-	gtk_container_add ((GtkContainer*) close_button, (GtkWidget*) (_tmp0_ = g_object_ref_sink ((GtkImage*) gtk_image_new_from_stock (GTK_STOCK_CLOSE, GTK_ICON_SIZE_MENU))));
-	_g_object_unref0 (_tmp0_);
-	g_signal_connect_object (close_button, "clicked", (GCallback) __lambda47__gtk_button_clicked, self, 0);
+	_tmp1_ = _ ("Hide panel");
+	gtk_widget_set_tooltip_text ((GtkWidget*) close_button, _tmp1_);
+	_tmp2_ = (GtkImage*) gtk_image_new_from_stock (GTK_STOCK_CLOSE, GTK_ICON_SIZE_MENU);
+	_tmp3_ = g_object_ref_sink (_tmp2_);
+	gtk_container_add ((GtkContainer*) close_button, (GtkWidget*) _tmp3_);
+	_g_object_unref0 (_tmp3_);
+	g_signal_connect_object (close_button, "clicked", (GCallback) __lambda48__gtk_button_clicked, self, 0);
 	result = close_button;
 	return result;
 }
 
 
-static void _lambda46_ (Block12Data* _data12_) {
+static Block12Data* block12_data_ref (Block12Data* _data12_) {
+	g_atomic_int_inc (&_data12_->_ref_count_);
+	return _data12_;
+}
+
+
+static void block12_data_unref (Block12Data* _data12_) {
+	if (g_atomic_int_dec_and_test (&_data12_->_ref_count_)) {
+		_g_object_unref0 (_data12_->self);
+		_g_object_unref0 (_data12_->combo_box);
+		g_slice_free (Block12Data, _data12_);
+	}
+}
+
+
+static void _lambda47_ (Block12Data* _data12_) {
 	SidePanel * self;
+	gint _tmp1_;
 	gint i;
 	self = _data12_->self;
 	{
@@ -234,70 +273,71 @@ static void _lambda46_ (Block12Data* _data12_) {
 		component_collection = self->priv->components;
 		component_collection_length1 = self->priv->components_length1;
 		for (component_it = 0; component_it < self->priv->components_length1; component_it = component_it + 1) {
+			GtkVBox* _tmp0_;
 			GtkVBox* component;
-			component = _g_object_ref0 (component_collection[component_it]);
+			_tmp0_ = _g_object_ref0 (component_collection[component_it]);
+			component = _tmp0_;
 			{
 				gtk_widget_hide ((GtkWidget*) component);
 				_g_object_unref0 (component);
 			}
 		}
 	}
-	i = gtk_combo_box_get_active (_data12_->combo_box);
+	_tmp1_ = gtk_combo_box_get_active (_data12_->combo_box);
+	i = _tmp1_;
 	gtk_widget_show ((GtkWidget*) self->priv->components[i]);
 }
 
 
-static void __lambda46__gtk_combo_box_changed (GtkComboBox* _sender, gpointer self) {
-	_lambda46_ (self);
-}
-
-
-static Block12Data* block12_data_ref (Block12Data* _data12_) {
-	g_atomic_int_inc (&_data12_->_ref_count_);
-	return _data12_;
-}
-
-
-static void block12_data_unref (Block12Data* _data12_) {
-	if (g_atomic_int_dec_and_test (&_data12_->_ref_count_)) {
-		_g_object_unref0 (_data12_->self);
-		_g_object_unref0 (_data12_->combo_box);
-		g_slice_free (Block12Data, _data12_);
-	}
+static void __lambda47__gtk_combo_box_changed (GtkComboBox* _sender, gpointer self) {
+	_lambda47_ (self);
 }
 
 
 static GtkComboBox* side_panel_get_combo_box (SidePanel* self) {
 	GtkComboBox* result = NULL;
 	Block12Data* _data12_;
-	GtkListStore* _tmp0_;
+	GtkListStore* _tmp0_ = NULL;
+	GtkComboBox* _tmp1_ = NULL;
+	GtkCellRendererPixbuf* _tmp2_ = NULL;
 	GtkCellRendererPixbuf* pixbuf_renderer;
+	GtkCellRendererText* _tmp3_ = NULL;
 	GtkCellRendererText* text_renderer;
+	GtkComboBox* _tmp4_;
 	g_return_val_if_fail (self != NULL, NULL);
 	_data12_ = g_slice_new0 (Block12Data);
 	_data12_->_ref_count_ = 1;
 	_data12_->self = g_object_ref (self);
-	self->priv->list_store = (_tmp0_ = gtk_list_store_new ((gint) SIDE_PANEL_SIDE_PANEL_COLUMN_N_COLUMNS, G_TYPE_STRING, G_TYPE_STRING), _g_object_unref0 (self->priv->list_store), _tmp0_);
-	_data12_->combo_box = g_object_ref_sink ((GtkComboBox*) gtk_combo_box_new_with_model ((GtkTreeModel*) self->priv->list_store));
-	pixbuf_renderer = g_object_ref_sink ((GtkCellRendererPixbuf*) gtk_cell_renderer_pixbuf_new ());
+	_tmp0_ = gtk_list_store_new ((gint) SIDE_PANEL_SIDE_PANEL_COLUMN_N_COLUMNS, G_TYPE_STRING, G_TYPE_STRING);
+	_g_object_unref0 (self->priv->list_store);
+	self->priv->list_store = _tmp0_;
+	_tmp1_ = (GtkComboBox*) gtk_combo_box_new_with_model ((GtkTreeModel*) self->priv->list_store);
+	_data12_->combo_box = g_object_ref_sink (_tmp1_);
+	_tmp2_ = (GtkCellRendererPixbuf*) gtk_cell_renderer_pixbuf_new ();
+	pixbuf_renderer = g_object_ref_sink (_tmp2_);
 	gtk_cell_layout_pack_start ((GtkCellLayout*) _data12_->combo_box, (GtkCellRenderer*) pixbuf_renderer, FALSE);
 	gtk_cell_layout_set_attributes ((GtkCellLayout*) _data12_->combo_box, (GtkCellRenderer*) pixbuf_renderer, "stock-id", SIDE_PANEL_SIDE_PANEL_COLUMN_PIXBUF, NULL, NULL);
-	text_renderer = g_object_ref_sink ((GtkCellRendererText*) gtk_cell_renderer_text_new ());
+	_tmp3_ = (GtkCellRendererText*) gtk_cell_renderer_text_new ();
+	text_renderer = g_object_ref_sink (_tmp3_);
 	gtk_cell_layout_pack_start ((GtkCellLayout*) _data12_->combo_box, (GtkCellRenderer*) text_renderer, TRUE);
 	gtk_cell_layout_set_attributes ((GtkCellLayout*) _data12_->combo_box, (GtkCellRenderer*) text_renderer, "text", SIDE_PANEL_SIDE_PANEL_COLUMN_NAME, NULL, NULL);
-	g_signal_connect_data (_data12_->combo_box, "changed", (GCallback) __lambda46__gtk_combo_box_changed, block12_data_ref (_data12_), (GClosureNotify) block12_data_unref, 0);
-	result = _g_object_ref0 (_data12_->combo_box);
+	g_signal_connect_data (_data12_->combo_box, "changed", (GCallback) __lambda47__gtk_combo_box_changed, block12_data_ref (_data12_), (GClosureNotify) block12_data_unref, 0);
+	_tmp4_ = _g_object_ref0 (_data12_->combo_box);
+	result = _tmp4_;
 	_g_object_unref0 (text_renderer);
 	_g_object_unref0 (pixbuf_renderer);
 	block12_data_unref (_data12_);
+	_data12_ = NULL;
 	return result;
 }
 
 
 gint side_panel_get_active_component (SidePanel* self) {
 	gint result = 0;
+	gint _tmp0_;
 	g_return_val_if_fail (self != NULL, 0);
-	result = gtk_combo_box_get_active (self->priv->combo_box);
+	_tmp0_ = gtk_combo_box_get_active (self->priv->combo_box);
+	result = _tmp0_;
 	return result;
 }
 
@@ -355,4 +395,3 @@ static void _vala_array_free (gpointer array, gint array_length, GDestroyNotify
 
 
 
-
diff --git a/src/C/symbols.c b/src/C/symbols.c
index 33af7af..5af007c 100644
--- a/src/C/symbols.c
+++ b/src/C/symbols.c
@@ -1,4 +1,4 @@
-/* symbols.c generated by valac 0.10.3, the Vala compiler
+/* symbols.c generated by valac 0.12.1, the Vala compiler
  * generated from symbols.vala, do not modify */
 
 /*
@@ -25,9 +25,9 @@
 #include <gtk/gtk.h>
 #include <stdlib.h>
 #include <string.h>
-#include <glib/gi18n-lib.h>
 #include <config.h>
 #include <gdk-pixbuf/gdk-pixdata.h>
+#include <glib/gi18n-lib.h>
 #include <stdio.h>
 #include <gio/gio.h>
 #include <gtksourceview/gtksourceview.h>
@@ -66,6 +66,7 @@ typedef struct _SymbolsCategoryInfo SymbolsCategoryInfo;
 typedef struct _SymbolsSymbolInfo SymbolsSymbolInfo;
 #define _g_object_unref0(var) ((var == NULL) ? NULL : (var = (g_object_unref (var), NULL)))
 #define _g_error_free0(var) ((var == NULL) ? NULL : (var = (g_error_free (var), NULL)))
+typedef struct _Block3Data Block3Data;
 
 #define TYPE_APP_SETTINGS (app_settings_get_type ())
 #define APP_SETTINGS(obj) (G_TYPE_CHECK_INSTANCE_CAST ((obj), TYPE_APP_SETTINGS, AppSettings))
@@ -77,7 +78,7 @@ typedef struct _SymbolsSymbolInfo SymbolsSymbolInfo;
 typedef struct _AppSettings AppSettings;
 typedef struct _AppSettingsClass AppSettingsClass;
 #define _gtk_tree_path_free0(var) ((var == NULL) ? NULL : (var = (gtk_tree_path_free (var), NULL)))
-#define __g_list_free_gtk_tree_path_free0(var) ((var == NULL) ? NULL : (var = (_g_list_free_gtk_tree_path_free (var), NULL)))
+#define __g_list_free__gtk_tree_path_free0_0(var) ((var == NULL) ? NULL : (var = (_g_list_free__gtk_tree_path_free0_ (var), NULL)))
 
 #define TYPE_DOCUMENT_TAB (document_tab_get_type ())
 #define DOCUMENT_TAB(obj) (G_TYPE_CHECK_INSTANCE_CAST ((obj), TYPE_DOCUMENT_TAB, DocumentTab))
@@ -109,7 +110,6 @@ typedef struct _DocumentClass DocumentClass;
 typedef struct _DocumentView DocumentView;
 typedef struct _DocumentViewClass DocumentViewClass;
 #define _g_free0(var) (var = (g_free (var), NULL))
-typedef struct _Block3Data Block3Data;
 
 #define TYPE_MOST_USED_SYMBOL (most_used_symbol_get_type ())
 typedef struct _MostUsedSymbol MostUsedSymbol;
@@ -144,14 +144,14 @@ typedef enum  {
 } SymbolsCategoryColumn;
 
 struct _SymbolsCategoryInfo {
-	char* name;
-	char* icon;
+	gchar* name;
+	gchar* icon;
 };
 
 struct _SymbolsSymbolInfo {
-	char* filename;
-	char* latex_command;
-	char* package_required;
+	gchar* filename;
+	gchar* latex_command;
+	gchar* package_required;
 };
 
 struct _Block3Data {
@@ -163,13 +163,14 @@ struct _Block3Data {
 };
 
 struct _MostUsedSymbol {
-	char* id;
-	char* latex_command;
-	char* package_required;
+	gchar* id;
+	gchar* latex_command;
+	gchar* package_required;
 	guint num;
 };
 
 
+static gpointer symbols_parent_class = NULL;
 static gboolean symbols_stores_initialized;
 static gboolean symbols_stores_initialized = FALSE;
 static GtkListStore* symbols_categories_store;
@@ -181,7 +182,6 @@ static gint symbols_symbols_stores_length1 = 0;
 static gint _symbols_symbols_stores_size_ = 0;
 static GtkListStore* symbols_mus_store;
 static GtkListStore* symbols_mus_store = NULL;
-static gpointer symbols_parent_class = NULL;
 
 GType symbols_get_type (void) G_GNUC_CONST;
 GType main_window_get_type (void) G_GNUC_CONST;
@@ -203,32 +203,33 @@ static void symbols_symbol_info_copy (const SymbolsSymbolInfo* self, SymbolsSymb
 static void symbols_symbol_info_destroy (SymbolsSymbolInfo* self);
 Symbols* symbols_new (MainWindow* main_window);
 Symbols* symbols_construct (GType object_type, MainWindow* main_window);
-GdkPixbuf* utils_get_pixbuf_from_stock (const char* stock_id, GtkIconSize size);
+GdkPixbuf* utils_get_pixbuf_from_stock (const gchar* stock_id, GtkIconSize size);
 static GtkListStore* symbols_get_symbol_store (Symbols* self, SymbolsSymbolInfo* symbols, int symbols_length1);
 void symbols_reload_most_used_symbols (void);
 static void symbols_create_icon_views (Symbols* self);
+static Block3Data* block3_data_ref (Block3Data* _data3_);
+static void block3_data_unref (Block3Data* _data3_);
 GtkWidget* utils_add_scrollbar (GtkWidget* child);
-static void _lambda48_ (Symbols* self);
+static void _lambda49_ (Symbols* self);
 GType app_settings_get_type (void) G_GNUC_CONST;
 AppSettings* app_settings_get_default (void);
 void app_settings_clear_most_used_symbols (AppSettings* self);
-static void __lambda48__gtk_button_clicked (GtkButton* _sender, gpointer self);
-static void _lambda49_ (Block3Data* _data3_);
-static void _g_list_free_gtk_tree_path_free (GList* self);
-static void __lambda49__gtk_icon_view_selection_changed (GtkIconView* _sender, gpointer self);
+static void __lambda49__gtk_button_clicked (GtkButton* _sender, gpointer self);
 static void _lambda50_ (Block3Data* _data3_);
+static void _gtk_tree_path_free0_ (gpointer var);
+static void _g_list_free__gtk_tree_path_free0_ (GList* self);
+static void __lambda50__gtk_icon_view_selection_changed (GtkIconView* _sender, gpointer self);
+static void _lambda51_ (Block3Data* _data3_);
 GType document_tab_get_type (void) G_GNUC_CONST;
 DocumentTab* main_window_get_active_tab (MainWindow* self);
 GType document_get_type (void) G_GNUC_CONST;
 Document* main_window_get_active_document (MainWindow* self);
 GType document_view_get_type (void) G_GNUC_CONST;
 DocumentView* main_window_get_active_view (MainWindow* self);
-void app_settings_add_symbol (AppSettings* self, const char* id, const char* command, const char* package);
-static void __lambda50__gtk_icon_view_selection_changed (GtkIconView* _sender, gpointer self);
-static Block3Data* block3_data_ref (Block3Data* _data3_);
-static void block3_data_unref (Block3Data* _data3_);
+void app_settings_add_symbol (AppSettings* self, const gchar* id, const gchar* command, const gchar* package);
+static void __lambda51__gtk_icon_view_selection_changed (GtkIconView* _sender, gpointer self);
 static void symbols_insert_symbol (GtkListStore* symbol_store, gint index, SymbolsSymbolInfo* symbol);
-static char* symbols_get_symbol_id (const char* path);
+static gchar* symbols_get_symbol_id (const gchar* path);
 GType most_used_symbol_get_type (void) G_GNUC_CONST;
 MostUsedSymbol* most_used_symbol_dup (const MostUsedSymbol* self);
 void most_used_symbol_free (MostUsedSymbol* self);
@@ -240,9 +241,8 @@ void symbols_insert_most_used_symbol (gint index, MostUsedSymbol* symbol);
 void symbols_remove_most_used_symbol (gint index);
 void symbols_swap_most_used_symbol (gint current_index, gint new_index);
 static void symbols_finalize (GObject* obj);
-static int _vala_strcmp0 (const char * str1, const char * str2);
 
-static const SymbolsCategoryInfo SYMBOLS_categories[7] = {{N_ ("Greek"), DATA_DIR "/images/icons/symbol_greek.png"}, {N_ ("Arrows"), DATA_DIR "/images/icons/symbol_arrows.png"}, {N_ ("Relations"), DATA_DIR "/images/icons/symbol_relations.png"}, {N_ ("Operators"), DATA_DIR "/images/icons/symbol_operators.png"}, {N_ ("Delimiters"), DATA_DIR "/images/icons/symbol_delimiters.png"}, {N_ ("Misc math"), DATA_DIR "/images/icons/symbol_misc_math.png"}, {N_ ("Misc text"), DATA_DIR "/images/icons/symbol_misc_text.png"}};
+static const SymbolsCategoryInfo SYMBOLS_categories[7] = {{"Greek", DATA_DIR "/images/icons/symbol_greek.png"}, {"Arrows", DATA_DIR "/images/icons/symbol_arrows.png"}, {"Relations", DATA_DIR "/images/icons/symbol_relations.png"}, {"Operators", DATA_DIR "/images/icons/symbol_operators.png"}, {"Delimiters", DATA_DIR "/images/icons/symbol_delimiters.png"}, {"Misc math", DATA_DIR "/images/icons/symbol_misc_math.png"}, {"Misc text", DATA_DIR "/images/icons/symbol_misc_text.png"}};
 static const SymbolsSymbolInfo SYMBOLS_symbols_greek[51] = {{DATA_DIR "/images/greek/01.png", "\\alpha", NULL}, {DATA_DIR "/images/greek/02.png", "\\beta", NULL}, {DATA_DIR "/images/greek/03.png", "\\gamma", NULL}, {DATA_DIR "/images/greek/04.png", "\\delta", NULL}, {DATA_DIR "/images/greek/05.png", "\\epsilon", NULL}, {DATA_DIR "/images/greek/06.png", "\\varepsilon", NULL}, {DATA_DIR "/images/greek/07.png", "\\zeta", NULL}, {DATA_DIR "/images/greek/08.png", "\\eta", NULL}, {DATA_DIR "/images/greek/09.png", "\\theta", NULL}, {DATA_DIR "/images/greek/10.png", "\\vartheta", NULL}, {DATA_DIR "/images/greek/11.png", "\\iota", NULL}, {DATA_DIR "/images/greek/12.png", "\\kappa", NULL}, {DATA_DIR "/images/greek/13.png", "\\lambda", NULL}, {DATA_DIR "/images/greek/14.png", "\\mu", NULL}, {DATA_DIR "/images/greek/15.png", "\\nu", NULL}, {DATA_DIR "/images/greek/16.png", "\\xi", NULL}, {DATA_DIR "/images/greek/18.png", "\\pi", NULL}, {DATA_DIR "/images/greek/19.png", "\\varpi", NULL},
  {DATA_DIR "/images/greek/20.png", "\\rho", NULL}, {DATA_DIR "/images/greek/21.png", "\\varrho", NULL}, {DATA_DIR "/images/greek/22.png", "\\sigma", NULL}, {DATA_DIR "/images/greek/23.png", "\\varsigma", NULL}, {DATA_DIR "/images/greek/24.png", "\\tau", NULL}, {DATA_DIR "/images/greek/25.png", "\\upsilon", NULL}, {DATA_DIR "/images/greek/26.png", "\\phi", NULL}, {DATA_DIR "/images/greek/27.png", "\\varphi", NULL}, {DATA_DIR "/images/greek/28.png", "\\chi", NULL}, {DATA_DIR "/images/greek/29.png", "\\psi", NULL}, {DATA_DIR "/images/greek/30.png", "\\omega", NULL}, {DATA_DIR "/images/greek/33.png", "\\Gamma", NULL}, {DATA_DIR "/images/greek/34.png", "\\varGamma", "amsmath"}, {DATA_DIR "/images/greek/35.png", "\\Delta", NULL}, {DATA_DIR "/images/greek/36.png", "\\varDelta", "amsmath"}, {DATA_DIR "/images/greek/40.png", "\\Theta", NULL}, {DATA_DIR "/images/greek/41.png", "\\varTheta", "amsmath"}, {DATA_DIR "/images/greek/44.png", "\\Lambda", NULL}, {DATA_DIR "/images/greek/45.pn
 g", "\\varLambda", "amsmath"}, {DATA_DIR "/images/greek/48.png", "\\Xi", NULL}, {DATA_DIR "/images/greek/49.png", "\\varXi", "amsmath"}, {DATA_DIR "/images/greek/51.png", "\\Pi", NULL}, {DATA_DIR "/images/greek/52.png", "\\varPi", "amsmath"}, {DATA_DIR "/images/greek/54.png", "\\Sigma", NULL}, {DATA_DIR "/images/greek/55.png", "\\varSigma", "amsmath"}, {DATA_DIR "/images/greek/57.png", "\\Upsilon", NULL}, {DATA_DIR "/images/greek/58.png", "\\varUpsilon", "amsmath"}, {DATA_DIR "/images/greek/59.png", "\\Phi", NULL}, {DATA_DIR "/images/greek/60.png", "\\varPhi", "amsmath"}, {DATA_DIR "/images/greek/62.png", "\\Psi", NULL}, {DATA_DIR "/images/greek/63.png", "\\varPsi", "amsmath"}, {DATA_DIR "/images/greek/64.png", "\\Omega", NULL}, {DATA_DIR "/images/greek/65.png", "\\varOmega", "amsmath"}};
 static const SymbolsSymbolInfo SYMBOLS_symbols_arrows[69] = {{DATA_DIR "/images/arrows/01.png", "\\leftarrow", NULL}, {DATA_DIR "/images/arrows/02.png", "\\leftrightarrow", NULL}, {DATA_DIR "/images/arrows/03.png", "\\rightarrow", NULL}, {DATA_DIR "/images/arrows/04.png", "\\mapsto", NULL}, {DATA_DIR "/images/arrows/05.png", "\\longleftarrow", NULL}, {DATA_DIR "/images/arrows/06.png", "\\longleftrightarrow", NULL}, {DATA_DIR "/images/arrows/07.png", "\\longrightarrow", NULL}, {DATA_DIR "/images/arrows/08.png", "\\longmapsto", NULL}, {DATA_DIR "/images/arrows/09.png", "\\downarrow", NULL}, {DATA_DIR "/images/arrows/10.png", "\\updownarrow", NULL}, {DATA_DIR "/images/arrows/11.png", "\\uparrow", NULL}, {DATA_DIR "/images/arrows/12.png", "\\nwarrow", NULL}, {DATA_DIR "/images/arrows/13.png", "\\searrow", NULL}, {DATA_DIR "/images/arrows/14.png", "\\nearrow", NULL}, {DATA_DIR "/images/arrows/15.png", "\\swarrow", NULL}, {DATA_DIR "/images/arrows/16.png", "\\textdownarrow", "text
 comp"}, {DATA_DIR "/images/arrows/17.png", "\\textuparrow", "textcomp"}, {DATA_DIR "/images/arrows/18.png", "\\textleftarrow", "textcomp"}, {DATA_DIR "/images/arrows/19.png", "\\textrightarrow", "textcomp"}, {DATA_DIR "/images/arrows/20.png", "\\nleftarrow", "amssymb"}, {DATA_DIR "/images/arrows/21.png", "\\nleftrightarrow", "amssymb"}, {DATA_DIR "/images/arrows/22.png", "\\nrightarrow", "amssymb"}, {DATA_DIR "/images/arrows/23.png", "\\hookleftarrow", NULL}, {DATA_DIR "/images/arrows/24.png", "\\hookrightarrow", NULL}, {DATA_DIR "/images/arrows/25.png", "\\twoheadleftarrow", "amssymb"}, {DATA_DIR "/images/arrows/26.png", "\\twoheadrightarrow", "amssymb"}, {DATA_DIR "/images/arrows/27.png", "\\leftarrowtail", "amssymb"}, {DATA_DIR "/images/arrows/28.png", "\\rightarrowtail", "amssymb"}, {DATA_DIR "/images/arrows/29.png", "\\Leftarrow", NULL}, {DATA_DIR "/images/arrows/30.png", "\\Leftrightarrow", NULL}, {DATA_DIR "/images/arrows/31.png", "\\Rightarrow", NULL}, {DATA_DIR "/im
 ages/arrows/32.png", "\\Longleftarrow", NULL}, {DATA_DIR "/images/arrows/33.png", "\\Longleftrightarrow", NULL}, {DATA_DIR "/images/arrows/34.png", "\\Longrightarrow", NULL}, {DATA_DIR "/images/arrows/35.png", "\\Updownarrow", NULL}, {DATA_DIR "/images/arrows/36.png", "\\Uparrow", NULL}, {DATA_DIR "/images/arrows/37.png", "\\Downarrow", NULL}, {DATA_DIR "/images/arrows/38.png", "\\nLeftarrow", "amssymb"}, {DATA_DIR "/images/arrows/39.png", "\\nLeftrightarrow", "amssymb"}, {DATA_DIR "/images/arrows/40.png", "\\nRightarrow", "amssymb"}, {DATA_DIR "/images/arrows/41.png", "\\leftleftarrows", "amssymb"}, {DATA_DIR "/images/arrows/42.png", "\\leftrightarrows", "amssymb"}, {DATA_DIR "/images/arrows/43.png", "\\rightleftarrows", "amssymb"}, {DATA_DIR "/images/arrows/44.png", "\\rightrightarrows", "amssymb"}, {DATA_DIR "/images/arrows/45.png", "\\downdownarrows", "amssymb"}, {DATA_DIR "/images/arrows/46.png", "\\upuparrows", "amssymb"}, {DATA_DIR "/images/arrows/47.png", "\\circlear
 rowleft", "amssymb"}, {DATA_DIR "/images/arrows/48.png", "\\circlearrowright", "amssymb"}, {DATA_DIR "/images/arrows/49.png", "\\curvearrowleft", "amssymb"}, {DATA_DIR "/images/arrows/50.png", "\\curvearrowright", "amssymb"}, {DATA_DIR "/images/arrows/51.png", "\\Lsh", "amssymb"}, {DATA_DIR "/images/arrows/52.png", "\\Rsh", "amssymb"}, {DATA_DIR "/images/arrows/53.png", "\\looparrowleft", "amssymb"}, {DATA_DIR "/images/arrows/54.png", "\\looparrowright", "amssymb"}, {DATA_DIR "/images/arrows/55.png", "\\dashleftarrow", "amssymb"}, {DATA_DIR "/images/arrows/56.png", "\\dashrightarrow", "amssymb"}, {DATA_DIR "/images/arrows/57.png", "\\leftrightsquigarrow", "amssymb"}, {DATA_DIR "/images/arrows/58.png", "\\rightsquigarrow", "amssymb"}, {DATA_DIR "/images/arrows/59.png", "\\Lleftarrow", "amssymb"}, {DATA_DIR "/images/arrows/60.png", "\\leftharpoondown", NULL}, {DATA_DIR "/images/arrows/61.png", "\\rightharpoondown", NULL}, {DATA_DIR "/images/arrows/62.png", "\\leftharpoonup", N
 ULL}, {DATA_DIR "/images/arrows/63.png", "\\rightharpoonup", NULL}, {DATA_DIR "/images/arrows/64.png", "\\rightleftharpoons", NULL}, {DATA_DIR "/images/arrows/65.png", "\\leftrightharpoons", "amssymb"}, {DATA_DIR "/images/arrows/66.png", "\\downharpoonleft", "amssymb"}, {DATA_DIR "/images/arrows/67.png", "\\upharpoonleft", "amssymb"}, {DATA_DIR "/images/arrows/68.png", "\\downharpoonright", "amssymb"}, {DATA_DIR "/images/arrows/69.png", "\\upharpoonright", "amssymb"}};
 static const SymbolsSymbolInfo SYMBOLS_symbols_relations[139] = {{DATA_DIR "/images/relations/001.png", "\\bowtie", NULL}, {DATA_DIR "/images/relations/002.png", "\\Join", "amssymb"}, {DATA_DIR "/images/relations/003.png", "\\propto", NULL}, {DATA_DIR "/images/relations/004.png", "\\varpropto", "amssymb"}, {DATA_DIR "/images/relations/005.png", "\\multimap", "amssymb"}, {DATA_DIR "/images/relations/006.png", "\\pitchfork", "amssymb"}, {DATA_DIR "/images/relations/007.png", "\\therefore", "amssymb"}, {DATA_DIR "/images/relations/008.png", "\\because", "amssymb"}, {DATA_DIR "/images/relations/009.png", "=", NULL}, {DATA_DIR "/images/relations/010.png", "\\neq", NULL}, {DATA_DIR "/images/relations/011.png", "\\equiv", NULL}, {DATA_DIR "/images/relations/012.png", "\\approx", NULL}, {DATA_DIR "/images/relations/013.png", "\\sim", NULL}, {DATA_DIR "/images/relations/014.png", "\\simeq", NULL}, {DATA_DIR "/images/relations/015.png", "\\backsimeq", "amssymb"}, {DATA_DIR "/images/re
 lations/016.png", "\\approxeq", "amssymb"}, {DATA_DIR "/images/relations/017.png", "\\cong", NULL}, {DATA_DIR "/images/relations/018.png", "\\ncong", "amssymb"}, {DATA_DIR "/images/relations/019.png", "\\smile", NULL}, {DATA_DIR "/images/relations/020.png", "\\frown", NULL}, {DATA_DIR "/images/relations/021.png", "\\asymp", NULL}, {DATA_DIR "/images/relations/022.png", "\\smallfrown", "amssymb"}, {DATA_DIR "/images/relations/023.png", "\\smallsmile", "amssymb"}, {DATA_DIR "/images/relations/024.png", "\\between", "amssymb"}, {DATA_DIR "/images/relations/025.png", "\\prec", NULL}, {DATA_DIR "/images/relations/026.png", "\\succ", NULL}, {DATA_DIR "/images/relations/027.png", "\\nprec", "amssymb"}, {DATA_DIR "/images/relations/028.png", "\\nsucc", "amssymb"}, {DATA_DIR "/images/relations/029.png", "\\preceq", NULL}, {DATA_DIR "/images/relations/030.png", "\\succeq", NULL}, {DATA_DIR "/images/relations/031.png", "\\npreceq", "amssymb"}, {DATA_DIR "/images/relations/032.png", "\\
 nsucceq", "amssymb"}, {DATA_DIR "/images/relations/033.png", "\\preccurlyeq", "amssymb"}, {DATA_DIR "/images/relations/034.png", "\\succcurlyeq", "amssymb"}, {DATA_DIR "/images/relations/035.png", "\\curlyeqprec", "amssymb"}, {DATA_DIR "/images/relations/036.png", "\\curlyeqsucc", "amssymb"}, {DATA_DIR "/images/relations/037.png", "\\precsim", "amssymb"}, {DATA_DIR "/images/relations/038.png", "\\succsim", "amssymb"}, {DATA_DIR "/images/relations/039.png", "\\precnsim", "amssymb"}, {DATA_DIR "/images/relations/040.png", "\\succnsim", "amssymb"}, {DATA_DIR "/images/relations/041.png", "\\precapprox", "amssymb"}, {DATA_DIR "/images/relations/042.png", "\\succapprox", "amssymb"}, {DATA_DIR "/images/relations/043.png", "\\precnapprox", "amssymb"}, {DATA_DIR "/images/relations/044.png", "\\succnapprox", "amssymb"}, {DATA_DIR "/images/relations/045.png", "\\perp", NULL}, {DATA_DIR "/images/relations/046.png", "\\vdash", NULL}, {DATA_DIR "/images/relations/047.png", "\\dashv", NULL
 }, {DATA_DIR "/images/relations/048.png", "\\nvdash", "amssymb"}, {DATA_DIR "/images/relations/049.png", "\\Vdash", "amssymb"}, {DATA_DIR "/images/relations/050.png", "\\Vvdash", "amssymb"}, {DATA_DIR "/images/relations/051.png", "\\models", NULL}, {DATA_DIR "/images/relations/052.png", "\\vDash", "amssymb"}, {DATA_DIR "/images/relations/053.png", "\\nvDash", "amssymb"}, {DATA_DIR "/images/relations/054.png", "\\nVDash", "amssymb"}, {DATA_DIR "/images/relations/055.png", "\\mid", NULL}, {DATA_DIR "/images/relations/056.png", "\\nmid", "amssymb"}, {DATA_DIR "/images/relations/057.png", "\\parallel", NULL}, {DATA_DIR "/images/relations/058.png", "\\nparallel", "amssymb"}, {DATA_DIR "/images/relations/059.png", "\\shortmid", "amssymb"}, {DATA_DIR "/images/relations/060.png", "\\nshortmid", "amssymb"}, {DATA_DIR "/images/relations/061.png", "\\shortparallel", "amssymb"}, {DATA_DIR "/images/relations/062.png", "\\nshortparallel", "amssymb"}, {DATA_DIR "/images/relations/063.png",
  "<", NULL}, {DATA_DIR "/images/relations/064.png", ">", NULL}, {DATA_DIR "/images/relations/065.png", "\\nless", "amssymb"}, {DATA_DIR "/images/relations/066.png", "\\ngtr", "amssymb"}, {DATA_DIR "/images/relations/067.png", "\\lessdot", "amssymb"}, {DATA_DIR "/images/relations/068.png", "\\gtrdot", "amssymb"}, {DATA_DIR "/images/relations/069.png", "\\ll", NULL}, {DATA_DIR "/images/relations/070.png", "\\gg", NULL}, {DATA_DIR "/images/relations/071.png", "\\lll", "amssymb"}, {DATA_DIR "/images/relations/072.png", "\\ggg", "amssymb"}, {DATA_DIR "/images/relations/073.png", "\\leq", NULL}, {DATA_DIR "/images/relations/074.png", "\\geq", NULL}, {DATA_DIR "/images/relations/075.png", "\\lneq", "amssymb"}, {DATA_DIR "/images/relations/076.png", "\\gneq", "amssymb"}, {DATA_DIR "/images/relations/077.png", "\\nleq", "amssymb"}, {DATA_DIR "/images/relations/078.png", "\\ngeq", "amssymb"}, {DATA_DIR "/images/relations/079.png", "\\leqq", "amssymb"}, {DATA_DIR "/images/relations/080
 .png", "\\geqq", "amssymb"}, {DATA_DIR "/images/relations/081.png", "\\lneqq", "amssymb"}, {DATA_DIR "/images/relations/082.png", "\\gneqq", "amssymb"}, {DATA_DIR "/images/relations/083.png", "\\lvertneqq", "amssymb"}, {DATA_DIR "/images/relations/084.png", "\\gvertneqq", "amssymb"}, {DATA_DIR "/images/relations/085.png", "\\nleqq", "amssymb"}, {DATA_DIR "/images/relations/086.png", "\\ngeqq", "amssymb"}, {DATA_DIR "/images/relations/087.png", "\\leqslant", "amssymb"}, {DATA_DIR "/images/relations/088.png", "\\geqslant", "amssymb"}, {DATA_DIR "/images/relations/089.png", "\\nleqslant", "amssymb"}, {DATA_DIR "/images/relations/090.png", "\\ngeqslant", "amssymb"}, {DATA_DIR "/images/relations/091.png", "\\eqslantless", "amssymb"}, {DATA_DIR "/images/relations/092.png", "\\eqslantgtr", "amssymb"}, {DATA_DIR "/images/relations/093.png", "\\lessgtr", "amssymb"}, {DATA_DIR "/images/relations/094.png", "\\gtrless", "amssymb"}, {DATA_DIR "/images/relations/095.png", "\\lesseqgtr", "
 amssymb"}, {DATA_DIR "/images/relations/096.png", "\\gtreqless", "amssymb"}, {DATA_DIR "/images/relations/097.png", "\\lesseqqgtr", "amssymb"}, {DATA_DIR "/images/relations/098.png", "\\gtreqqless", "amssymb"}, {DATA_DIR "/images/relations/099.png", "\\lesssim", "amssymb"}, {DATA_DIR "/images/relations/100.png", "\\gtrsim", "amssymb"}, {DATA_DIR "/images/relations/101.png", "\\lnsim", "amssymb"}, {DATA_DIR "/images/relations/102.png", "\\gnsim", "amssymb"}, {DATA_DIR "/images/relations/103.png", "\\lessapprox", "amssymb"}, {DATA_DIR "/images/relations/104.png", "\\gtrapprox", "amssymb"}, {DATA_DIR "/images/relations/105.png", "\\lnapprox", "amssymb"}, {DATA_DIR "/images/relations/106.png", "\\gnapprox", "amssymb"}, {DATA_DIR "/images/relations/107.png", "\\vartriangleleft", "amssymb"}, {DATA_DIR "/images/relations/108.png", "\\vartriangleright", "amssymb"}, {DATA_DIR "/images/relations/109.png", "\\ntriangleleft", "amssymb"}, {DATA_DIR "/images/relations/110.png", "\\ntriang
 leright", "amssymb"}, {DATA_DIR "/images/relations/111.png", "\\trianglelefteq", "amssymb"}, {DATA_DIR "/images/relations/112.png", "\\trianglerighteq", "amssymb"}, {DATA_DIR "/images/relations/113.png", "\\ntrianglelefteq", "amssymb"}, {DATA_DIR "/images/relations/114.png", "\\ntrianglerighteq", "amssymb"}, {DATA_DIR "/images/relations/115.png", "\\blacktriangleleft", "amssymb"}, {DATA_DIR "/images/relations/116.png", "\\blacktriangleright", "amssymb"}, {DATA_DIR "/images/relations/117.png", "\\subset", NULL}, {DATA_DIR "/images/relations/118.png", "\\supset", NULL}, {DATA_DIR "/images/relations/119.png", "\\subseteq", NULL}, {DATA_DIR "/images/relations/120.png", "\\supseteq", NULL}, {DATA_DIR "/images/relations/121.png", "\\subsetneq", "amssymb"}, {DATA_DIR "/images/relations/122.png", "\\supsetneq", "amssymb"}, {DATA_DIR "/images/relations/123.png", "\\varsubsetneq", "amssymb"}, {DATA_DIR "/images/relations/124.png", "\\varsupsetneq", "amssymb"}, {DATA_DIR "/images/relat
 ions/125.png", "\\nsubseteq", "amssymb"}, {DATA_DIR "/images/relations/126.png", "\\nsupseteq", "amssymb"}, {DATA_DIR "/images/relations/127.png", "\\subseteqq", "amssymb"}, {DATA_DIR "/images/relations/128.png", "\\supseteqq", "amssymb"}, {DATA_DIR "/images/relations/129.png", "\\subsetneqq", "amssymb"}, {DATA_DIR "/images/relations/130.png", "\\supsetneqq", "amssymb"}, {DATA_DIR "/images/relations/131.png", "\\nsubseteqq", "amssymb"}, {DATA_DIR "/images/relations/132.png", "\\nsupseteqq", "amssymb"}, {DATA_DIR "/images/relations/133.png", "\\backepsilon", "amssymb"}, {DATA_DIR "/images/relations/134.png", "\\Subset", "amssymb"}, {DATA_DIR "/images/relations/135.png", "\\Supset", "amssymb"}, {DATA_DIR "/images/relations/136.png", "\\sqsubset", "amssymb"}, {DATA_DIR "/images/relations/137.png", "\\sqsupset", "amssymb"}, {DATA_DIR "/images/relations/138.png", "\\sqsubseteq", NULL}, {DATA_DIR "/images/relations/139.png", "\\sqsupseteq", NULL}};
@@ -251,7 +251,6 @@ static const SymbolsSymbolInfo SYMBOLS_symbols_delimiters[37] = {{DATA_DIR "/ima
 static const SymbolsSymbolInfo SYMBOLS_symbols_misc_math[103] = {{DATA_DIR "/images/misc-math/01.png", "\\cdotp", NULL}, {DATA_DIR "/images/misc-math/02.png", "\\colon", NULL}, {DATA_DIR "/images/misc-math/03.png", "\\ldotp", NULL}, {DATA_DIR "/images/misc-math/04.png", "\\vdots", NULL}, {DATA_DIR "/images/misc-math/05.png", "\\cdots", NULL}, {DATA_DIR "/images/misc-math/06.png", "\\ddots", NULL}, {DATA_DIR "/images/misc-math/07.png", "\\ldots", NULL}, {DATA_DIR "/images/misc-math/08.png", "\\neg", NULL}, {DATA_DIR "/images/misc-math/09.png", "\\infty", NULL}, {DATA_DIR "/images/misc-math/10.png", "\\prime", NULL}, {DATA_DIR "/images/misc-math/11.png", "\\backprime", "amssymb"}, {DATA_DIR "/images/misc-math/12.png", "\\backslash", NULL}, {DATA_DIR "/images/misc-math/13.png", "\\diagdown", "amssymb"}, {DATA_DIR "/images/misc-math/14.png", "\\diagup", "amssymb"}, {DATA_DIR "/images/misc-math/15.png", "\\surd", NULL}, {DATA_DIR "/images/misc-math/16.png", "\\emptyset", NULL}, {
 DATA_DIR "/images/misc-math/17.png", "\\varnothing", "amssymb"}, {DATA_DIR "/images/misc-math/18.png", "\\sharp", NULL}, {DATA_DIR "/images/misc-math/19.png", "\\flat", NULL}, {DATA_DIR "/images/misc-math/20.png", "\\natural", NULL}, {DATA_DIR "/images/misc-math/21.png", "\\angle", NULL}, {DATA_DIR "/images/misc-math/22.png", "\\sphericalangle", "amssymb"}, {DATA_DIR "/images/misc-math/23.png", "\\measuredangle", "amssymb"}, {DATA_DIR "/images/misc-math/24.png", "\\Box", "amssymb"}, {DATA_DIR "/images/misc-math/25.png", "\\square", "amssymb"}, {DATA_DIR "/images/misc-math/26.png", "\\triangle", NULL}, {DATA_DIR "/images/misc-math/27.png", "\\vartriangle", "amssymb"}, {DATA_DIR "/images/misc-math/28.png", "\\triangledown", "amssymb"}, {DATA_DIR "/images/misc-math/29.png", "\\Diamond", "amssymb"}, {DATA_DIR "/images/misc-math/30.png", "\\diamondsuit", NULL}, {DATA_DIR "/images/misc-math/31.png", "\\lozenge", "amssymb"}, {DATA_DIR "/images/misc-math/32.png", "\\heartsuit", NULL
 }, {DATA_DIR "/images/misc-math/33.png", "\\blacksquare", "amssymb"}, {DATA_DIR "/images/misc-math/34.png", "\\blacktriangle", "amssymb"}, {DATA_DIR "/images/misc-math/35.png", "\\blacktriangledown", "amssymb"}, {DATA_DIR "/images/misc-math/36.png", "\\blacklozenge", "amssymb"}, {DATA_DIR "/images/misc-math/37.png", "\\bigstar", "amssymb"}, {DATA_DIR "/images/misc-math/38.png", "\\spadesuit", NULL}, {DATA_DIR "/images/misc-math/39.png", "\\clubsuit", NULL}, {DATA_DIR "/images/misc-math/40.png", "\\forall", NULL}, {DATA_DIR "/images/misc-math/41.png", "\\exists", NULL}, {DATA_DIR "/images/misc-math/42.png", "\\nexists", "amssymb"}, {DATA_DIR "/images/misc-math/43.png", "\\Finv", "amssymb"}, {DATA_DIR "/images/misc-math/44.png", "\\Game", "amssymb"}, {DATA_DIR "/images/misc-math/45.png", "\\ni", NULL}, {DATA_DIR "/images/misc-math/46.png", "\\in", NULL}, {DATA_DIR "/images/misc-math/47.png", "\\notin", NULL}, {DATA_DIR "/images/misc-math/48.png", "\\complement", "amssymb"}, {D
 ATA_DIR "/images/misc-math/set-N.png", "\\mathbb{N}", "amsfonts"}, {DATA_DIR "/images/misc-math/set-Z.png", "\\mathbb{Z}", "amsfonts"}, {DATA_DIR "/images/misc-math/set-Q.png", "\\mathbb{Q}", "amsfonts"}, {DATA_DIR "/images/misc-math/set-I.png", "\\mathbb{I}", "amsfonts"}, {DATA_DIR "/images/misc-math/set-R.png", "\\mathbb{R}", "amsfonts"}, {DATA_DIR "/images/misc-math/set-C.png", "\\mathbb{C}", "amsfonts"}, {DATA_DIR "/images/misc-math/49.png", "\\Im", NULL}, {DATA_DIR "/images/misc-math/50.png", "\\Re", NULL}, {DATA_DIR "/images/misc-math/51.png", "\\aleph", NULL}, {DATA_DIR "/images/misc-math/52.png", "\\wp", NULL}, {DATA_DIR "/images/misc-math/53.png", "\\hslash", "amssymb"}, {DATA_DIR "/images/misc-math/54.png", "\\hbar", NULL}, {DATA_DIR "/images/misc-math/55.png", "\\imath", NULL}, {DATA_DIR "/images/misc-math/56.png", "\\jmath", NULL}, {DATA_DIR "/images/misc-math/57.png", "\\Bbbk", "amssymb"}, {DATA_DIR "/images/misc-math/58.png", "\\ell", NULL}, {DATA_DIR "/images/
 misc-math/59.png", "\\circledR", "amssymb"}, {DATA_DIR "/images/misc-math/60.png", "\\circledS", "amssymb"}, {DATA_DIR "/images/misc-math/61.png", "\\bot", NULL}, {DATA_DIR "/images/misc-math/62.png", "\\top", NULL}, {DATA_DIR "/images/misc-math/63.png", "\\partial", NULL}, {DATA_DIR "/images/misc-math/64.png", "\\nabla", NULL}, {DATA_DIR "/images/misc-math/65.png", "\\eth", "amssymb"}, {DATA_DIR "/images/misc-math/66.png", "\\mho", "amssymb"}, {DATA_DIR "/images/misc-math/67.png", "\\acute{}", NULL}, {DATA_DIR "/images/misc-math/68.png", "\\grave{}", NULL}, {DATA_DIR "/images/misc-math/69.png", "\\check{}", NULL}, {DATA_DIR "/images/misc-math/70.png", "\\hat{}", NULL}, {DATA_DIR "/images/misc-math/71.png", "\\tilde{}", NULL}, {DATA_DIR "/images/misc-math/72.png", "\\bar{}", NULL}, {DATA_DIR "/images/misc-math/73.png", "\\vec{}", NULL}, {DATA_DIR "/images/misc-math/74.png", "\\breve{}", NULL}, {DATA_DIR "/images/misc-math/75.png", "\\dot{}", NULL}, {DATA_DIR "/images/misc-ma
 th/76.png", "\\ddot{}", NULL}, {DATA_DIR "/images/misc-math/77.png", "\\dddot{}", "amsmath"}, {DATA_DIR "/images/misc-math/78.png", "\\ddddot{}", "amsmath"}, {DATA_DIR "/images/misc-math/79.png", "\\mathring{}", NULL}, {DATA_DIR "/images/misc-math/80.png", "\\widetilde{}", NULL}, {DATA_DIR "/images/misc-math/81.png", "\\widehat{}", NULL}, {DATA_DIR "/images/misc-math/82.png", "\\overleftarrow{}", NULL}, {DATA_DIR "/images/misc-math/83.png", "\\overrightarrow{}", NULL}, {DATA_DIR "/images/misc-math/84.png", "\\overline{}", NULL}, {DATA_DIR "/images/misc-math/85.png", "\\underline{}", NULL}, {DATA_DIR "/images/misc-math/86.png", "\\overbrace{}", NULL}, {DATA_DIR "/images/misc-math/87.png", "\\underbrace{}", NULL}, {DATA_DIR "/images/misc-math/88.png", "\\overleftrightarrow{}", "amsmath"}, {DATA_DIR "/images/misc-math/89.png", "\\underleftrightarrow{}", "amsmath"}, {DATA_DIR "/images/misc-math/90.png", "\\underleftarrow{}", "amsmath"}, {DATA_DIR "/images/misc-math/91.png", "\\u
 nderrightarrow{}", "amsmath"}, {DATA_DIR "/images/misc-math/92.png", "\\xleftarrow{}", "amsmath"}, {DATA_DIR "/images/misc-math/93.png", "\\xrightarrow{}", "amsmath"}, {DATA_DIR "/images/misc-math/94.png", "\\stackrel{}{}", NULL}, {DATA_DIR "/images/misc-math/95.png", "\\sqrt{}", NULL}, {DATA_DIR "/images/misc-math/96.png", "f'", NULL}, {DATA_DIR "/images/misc-math/97.png", "f''", NULL}};
 static const SymbolsSymbolInfo SYMBOLS_symbols_misc_text[135] = {{DATA_DIR "/images/misc-text/001.png", "\\dots", NULL}, {DATA_DIR "/images/misc-text/002.png", "\\texttildelow", "textcomp"}, {DATA_DIR "/images/misc-text/003.png", "\\textasciicircum", NULL}, {DATA_DIR "/images/misc-text/004.png", "\\textasciimacron", "textcomp"}, {DATA_DIR "/images/misc-text/005.png", "\\textasciiacute", "textcomp"}, {DATA_DIR "/images/misc-text/006.png", "\\textasciidieresis", "textcomp"}, {DATA_DIR "/images/misc-text/007.png", "\\textasciitilde", NULL}, {DATA_DIR "/images/misc-text/008.png", "\\textasciigrave", "textcomp"}, {DATA_DIR "/images/misc-text/009.png", "\\textasciibreve", "textcomp"}, {DATA_DIR "/images/misc-text/010.png", "\\textasciicaron", "textcomp"}, {DATA_DIR "/images/misc-text/011.png", "\\textacutedbl", "textcomp"}, {DATA_DIR "/images/misc-text/012.png", "\\textgravedbl", "textcomp"}, {DATA_DIR "/images/misc-text/013.png", "\\textquotedblleft", NULL}, {DATA_DIR "/images/mi
 sc-text/014.png", "\\textquotedblright", NULL}, {DATA_DIR "/images/misc-text/015.png", "\\textquoteleft", NULL}, {DATA_DIR "/images/misc-text/016.png", "\\textquoteright", NULL}, {DATA_DIR "/images/misc-text/017.png", "\\textquotestraightbase", "textcomp"}, {DATA_DIR "/images/misc-text/018.png", "\\textquotestraightdblbase", "textcomp"}, {DATA_DIR "/images/misc-text/019.png", "\\textquotesingle", "textcomp"}, {DATA_DIR "/images/misc-text/020.png", "\\textdblhyphen", "textcomp"}, {DATA_DIR "/images/misc-text/021.png", "\\textdblhyphenchar", "textcomp"}, {DATA_DIR "/images/misc-text/022.png", "\\textasteriskcentered", NULL}, {DATA_DIR "/images/misc-text/023.png", "\\textperiodcentered", NULL}, {DATA_DIR "/images/misc-text/024.png", "\\textquestiondown", NULL}, {DATA_DIR "/images/misc-text/025.png", "\\textinterrobang", "textcomp"}, {DATA_DIR "/images/misc-text/026.png", "\\textinterrobangdown", "textcomp"}, {DATA_DIR "/images/misc-text/027.png", "\\textexclamdown", NULL}, {DAT
 A_DIR "/images/misc-text/028.png", "\\texttwelveudash", "textcomp"}, {DATA_DIR "/images/misc-text/029.png", "\\textemdash", NULL}, {DATA_DIR "/images/misc-text/030.png", "\\textendash", NULL}, {DATA_DIR "/images/misc-text/031.png", "\\textthreequartersemdash", "textcomp"}, {DATA_DIR "/images/misc-text/032.png", "\\textvisiblespace", NULL}, {DATA_DIR "/images/misc-text/033.png", "\\_", NULL}, {DATA_DIR "/images/misc-text/034.png", "\\textcurrency", "textcomp"}, {DATA_DIR "/images/misc-text/035.png", "\\textbaht", "textcomp"}, {DATA_DIR "/images/misc-text/036.png", "\\textguarani", "textcomp"}, {DATA_DIR "/images/misc-text/037.png", "\\textwon", "textcomp"}, {DATA_DIR "/images/misc-text/038.png", "\\textcent", "textcomp"}, {DATA_DIR "/images/misc-text/039.png", "\\textcentoldstyle", "textcomp"}, {DATA_DIR "/images/misc-text/040.png", "\\textdollar", NULL}, {DATA_DIR "/images/misc-text/041.png", "\\textdollaroldstyle", "textcomp"}, {DATA_DIR "/images/misc-text/042.png", "\\text
 lira", "textcomp"}, {DATA_DIR "/images/misc-text/043.png", "\\textyen", "textcomp"}, {DATA_DIR "/images/misc-text/044.png", "\\textdong", "textcomp"}, {DATA_DIR "/images/misc-text/045.png", "\\textnaira", "textcomp"}, {DATA_DIR "/images/misc-text/046.png", "\\textcolonmonetary", "textcomp"}, {DATA_DIR "/images/misc-text/047.png", "\\textpeso", "textcomp"}, {DATA_DIR "/images/misc-text/048.png", "\\pounds", NULL}, {DATA_DIR "/images/misc-text/049.png", "\\textflorin", "textcomp"}, {DATA_DIR "/images/misc-text/050.png", "\\texteuro", "textcomp"}, {DATA_DIR "/images/misc-text/051.png", "\\geneuro", "eurosym"}, {DATA_DIR "/images/misc-text/052.png", "\\geneuronarrow", "eurosym"}, {DATA_DIR "/images/misc-text/053.png", "\\geneurowide", "eurosym"}, {DATA_DIR "/images/misc-text/054.png", "\\officialeuro", "eurosym"}, {DATA_DIR "/images/misc-text/055.png", "\\textcircled{a}", NULL}, {DATA_DIR "/images/misc-text/056.png", "\\textcopyright", NULL}, {DATA_DIR "/images/misc-text/057.png
 ", "\\textcopyleft", "textcomp"}, {DATA_DIR "/images/misc-text/058.png", "\\textregistered", NULL}, {DATA_DIR "/images/misc-text/059.png", "\\texttrademark", NULL}, {DATA_DIR "/images/misc-text/060.png", "\\textservicemark", "textcomp"}, {DATA_DIR "/images/misc-text/061.png", "\\oldstylenums{0}", NULL}, {DATA_DIR "/images/misc-text/062.png", "\\oldstylenums{1}", NULL}, {DATA_DIR "/images/misc-text/063.png", "\\oldstylenums{2}", NULL}, {DATA_DIR "/images/misc-text/064.png", "\\oldstylenums{3}", NULL}, {DATA_DIR "/images/misc-text/065.png", "\\oldstylenums{4}", NULL}, {DATA_DIR "/images/misc-text/066.png", "\\oldstylenums{5}", NULL}, {DATA_DIR "/images/misc-text/067.png", "\\oldstylenums{6}", NULL}, {DATA_DIR "/images/misc-text/068.png", "\\oldstylenums{7}", NULL}, {DATA_DIR "/images/misc-text/069.png", "\\oldstylenums{8}", NULL}, {DATA_DIR "/images/misc-text/070.png", "\\oldstylenums{9}", NULL}, {DATA_DIR "/images/misc-text/071.png", "\\textonehalf", "textcomp"}, {DATA_DIR "/
 images/misc-text/072.png", "\\textonequarter", "textcomp"}, {DATA_DIR "/images/misc-text/073.png", "\\textthreequarters", "textcomp"}, {DATA_DIR "/images/misc-text/074.png", "\\textonesuperior", "textcomp"}, {DATA_DIR "/images/misc-text/075.png", "\\texttwosuperior", "textcomp"}, {DATA_DIR "/images/misc-text/076.png", "\\textthreesuperior", "textcomp"}, {DATA_DIR "/images/misc-text/077.png", "\\textnumero", "textcomp"}, {DATA_DIR "/images/misc-text/078.png", "\\textpertenthousand", "textcomp"}, {DATA_DIR "/images/misc-text/079.png", "\\textperthousand", "textcomp"}, {DATA_DIR "/images/misc-text/080.png", "\\textdiscount", "textcomp"}, {DATA_DIR "/images/misc-text/081.png", "\\textblank", "textcomp"}, {DATA_DIR "/images/misc-text/082.png", "\\textrecipe", "textcomp"}, {DATA_DIR "/images/misc-text/083.png", "\\textestimated", "textcomp"}, {DATA_DIR "/images/misc-text/084.png", "\\textreferencemark", "textcomp"}, {DATA_DIR "/images/misc-text/085.png", "\\textmusicalnote", "text
 comp"}, {DATA_DIR "/images/misc-text/086.png", "\\dag", NULL}, {DATA_DIR "/images/misc-text/087.png", "\\ddag", NULL}, {DATA_DIR "/images/misc-text/088.png", "\\S", NULL}, {DATA_DIR "/images/misc-text/089.png", "\\$", NULL}, {DATA_DIR "/images/misc-text/090.png", "\\textpilcrow", "textcomp"}, {DATA_DIR "/images/misc-text/091.png", "\\Cutleft", "marvosym"}, {DATA_DIR "/images/misc-text/092.png", "\\Cutright", "marvosym"}, {DATA_DIR "/images/misc-text/093.png", "\\Leftscissors", "marvosym"}, {DATA_DIR "/images/misc-text/094.png", "\\Cutline", "marvosym"}, {DATA_DIR "/images/misc-text/095.png", "\\Kutline", "marvosym"}, {DATA_DIR "/images/misc-text/096.png", "\\Rightscissors", "marvosym"}, {DATA_DIR "/images/misc-text/097.png", "\\CheckedBox", "wasysym"}, {DATA_DIR "/images/misc-text/098.png", "\\Square", "wasysym"}, {DATA_DIR "/images/misc-text/099.png", "\\XBox", "wasysym"}, {DATA_DIR "/images/misc-text/100.png", "\\textbigcircle", "textcomp"}, {DATA_DIR "/images/misc-text/10
 1.png", "\\textopenbullet", "textcomp"}, {DATA_DIR "/images/misc-text/102.png", "\\textbullet", NULL}, {DATA_DIR "/images/misc-text/103.png", "\\checkmark", "amssymb"}, {DATA_DIR "/images/misc-text/104.png", "\\maltese", "amssymb"}, {DATA_DIR "/images/misc-text/105.png", "\\textordmasculine", "textcomp"}, {DATA_DIR "/images/misc-text/106.png", "\\textordfeminine", "textcomp"}, {DATA_DIR "/images/misc-text/107.png", "\\textborn", "textcomp"}, {DATA_DIR "/images/misc-text/108.png", "\\textdivorced", "textcomp"}, {DATA_DIR "/images/misc-text/109.png", "\\textdied", "textcomp"}, {DATA_DIR "/images/misc-text/110.png", "\\textmarried", "textcomp"}, {DATA_DIR "/images/misc-text/111.png", "\\textleaf", "textcomp"}, {DATA_DIR "/images/misc-text/112.png", "\\textcelsius", "textcomp"}, {DATA_DIR "/images/misc-text/113.png", "\\textdegree", "textcomp"}, {DATA_DIR "/images/misc-text/114.png", "\\textmho", "textcomp"}, {DATA_DIR "/images/misc-text/115.png", "\\textohm", "textcomp"}, {DATA
 _DIR "/images/misc-text/116.png", "\\textbackslash", NULL}, {DATA_DIR "/images/misc-text/117.png", "\\textbar", NULL}, {DATA_DIR "/images/misc-text/118.png", "\\textbrokenbar", "textcomp"}, {DATA_DIR "/images/misc-text/119.png", "\\textbardbl", NULL}, {DATA_DIR "/images/misc-text/120.png", "\\textfractionsolidus", "textcomp"}, {DATA_DIR "/images/misc-text/121.png", "\\textlangle", "textcomp"}, {DATA_DIR "/images/misc-text/122.png", "\\textlnot", "textcomp"}, {DATA_DIR "/images/misc-text/123.png", "\\textminus", "textcomp"}, {DATA_DIR "/images/misc-text/124.png", "\\textrangle", "textcomp"}, {DATA_DIR "/images/misc-text/125.png", "\\textlbrackdbl", "textcomp"}, {DATA_DIR "/images/misc-text/126.png", "\\textrbrackdbl", "textcomp"}, {DATA_DIR "/images/misc-text/127.png", "\\textmu", "textcomp"}, {DATA_DIR "/images/misc-text/128.png", "\\textpm", "textcomp"}, {DATA_DIR "/images/misc-text/129.png", "\\textlquill", "textcomp"}, {DATA_DIR "/images/misc-text/130.png", "\\textrquill"
 , "textcomp"}, {DATA_DIR "/images/misc-text/131.png", "\\textless", NULL}, {DATA_DIR "/images/misc-text/132.png", "\\textgreater", NULL}, {DATA_DIR "/images/misc-text/133.png", "\\textsurd", "textcomp"}, {DATA_DIR "/images/misc-text/134.png", "\\texttimes", "textcomp"}, {DATA_DIR "/images/misc-text/135.png", "\\textdiv", "textcomp"}};
 
-
 static GType symbols_symbol_column_get_type (void) {
 	static volatile gsize symbols_symbol_column_type_id__volatile = 0;
 	if (g_once_init_enter (&symbols_symbol_column_type_id__volatile)) {
@@ -282,24 +281,37 @@ static gpointer _g_object_ref0 (gpointer self) {
 
 
 Symbols* symbols_construct (GType object_type, MainWindow* main_window) {
-	Symbols * self;
+	Symbols * self = NULL;
 	GError * _inner_error_ = NULL;
 	g_return_val_if_fail (main_window != NULL, NULL);
-	self = g_object_newv (object_type, 0, NULL);
+	self = (Symbols*) g_object_new (object_type, NULL);
 	if (!symbols_stores_initialized) {
-		GtkListStore* _tmp0_;
+		GtkListStore* _tmp0_ = NULL;
+		GdkPixbuf* _tmp6_ = NULL;
 		GdkPixbuf* pixbuf;
 		GtkTreeIter iter = {0};
-		GtkListStore* _tmp2_;
-		GtkListStore* _tmp3_;
-		GtkListStore* _tmp4_;
-		GtkListStore* _tmp5_;
-		GtkListStore* _tmp6_;
-		GtkListStore* _tmp7_;
-		GtkListStore* _tmp8_;
-		GtkListStore* _tmp9_;
+		GtkTreeIter _tmp7_ = {0};
+		const gchar* _tmp8_ = NULL;
+		GtkListStore* _tmp9_ = NULL;
 		GtkListStore* _tmp10_;
-		symbols_categories_store = (_tmp0_ = gtk_list_store_new ((gint) SYMBOLS_CATEGORY_COLUMN_N_COLUMNS, GDK_TYPE_PIXBUF, G_TYPE_STRING), _g_object_unref0 (symbols_categories_store), _tmp0_);
+		GtkListStore* _tmp11_ = NULL;
+		GtkListStore* _tmp12_;
+		GtkListStore* _tmp13_ = NULL;
+		GtkListStore* _tmp14_;
+		GtkListStore* _tmp15_ = NULL;
+		GtkListStore* _tmp16_;
+		GtkListStore* _tmp17_ = NULL;
+		GtkListStore* _tmp18_;
+		GtkListStore* _tmp19_ = NULL;
+		GtkListStore* _tmp20_;
+		GtkListStore* _tmp21_ = NULL;
+		GtkListStore* _tmp22_;
+		GtkListStore* _tmp23_ = NULL;
+		GtkListStore* _tmp24_;
+		GtkListStore* _tmp25_;
+		_tmp0_ = gtk_list_store_new ((gint) SYMBOLS_CATEGORY_COLUMN_N_COLUMNS, GDK_TYPE_PIXBUF, G_TYPE_STRING);
+		_g_object_unref0 (symbols_categories_store);
+		symbols_categories_store = _tmp0_;
 		{
 			SymbolsCategoryInfo* info_collection;
 			int info_collection_length1;
@@ -307,33 +319,38 @@ Symbols* symbols_construct (GType object_type, MainWindow* main_window) {
 			info_collection = SYMBOLS_categories;
 			info_collection_length1 = G_N_ELEMENTS (SYMBOLS_categories);
 			for (info_it = 0; info_it < G_N_ELEMENTS (SYMBOLS_categories); info_it = info_it + 1) {
-				SymbolsCategoryInfo _tmp1_ = {0};
+				SymbolsCategoryInfo _tmp1_;
+				SymbolsCategoryInfo _tmp2_ = {0};
 				SymbolsCategoryInfo info;
-				info = (symbols_category_info_copy (&info_collection[info_it], &_tmp1_), _tmp1_);
+				symbols_category_info_copy (&info_collection[info_it], &_tmp2_);
+				_tmp1_ = _tmp2_;
+				info = _tmp1_;
 				{
-					{
-						GdkPixbuf* pixbuf;
-						GtkTreeIter iter = {0};
-						pixbuf = gdk_pixbuf_new_from_file (info.icon, &_inner_error_);
-						if (_inner_error_ != NULL) {
-							goto __catch1_g_error;
-						}
-						gtk_list_store_append (symbols_categories_store, &iter);
-						gtk_list_store_set (symbols_categories_store, &iter, SYMBOLS_CATEGORY_COLUMN_ICON, pixbuf, SYMBOLS_CATEGORY_COLUMN_NAME, _ (info.name), -1, -1);
-						_g_object_unref0 (pixbuf);
+					GdkPixbuf* _tmp3_ = NULL;
+					GdkPixbuf* pixbuf;
+					GtkTreeIter iter = {0};
+					GtkTreeIter _tmp4_ = {0};
+					const gchar* _tmp5_ = NULL;
+					_tmp3_ = gdk_pixbuf_new_from_file (info.icon, &_inner_error_);
+					pixbuf = _tmp3_;
+					if (_inner_error_ != NULL) {
+						goto __catch1_g_error;
 					}
+					gtk_list_store_append (symbols_categories_store, &_tmp4_);
+					iter = _tmp4_;
+					_tmp5_ = _ (info.name);
+					gtk_list_store_set (symbols_categories_store, &iter, SYMBOLS_CATEGORY_COLUMN_ICON, pixbuf, SYMBOLS_CATEGORY_COLUMN_NAME, _tmp5_, -1, -1);
+					_g_object_unref0 (pixbuf);
 					goto __finally1;
 					__catch1_g_error:
 					{
 						GError * e;
 						e = _inner_error_;
 						_inner_error_ = NULL;
-						{
-							fprintf (stderr, "Warning: impossible to load the symbol: %s\n", e->message);
-							_g_error_free0 (e);
-							symbols_category_info_destroy (&info);
-							continue;
-						}
+						fprintf (stderr, "Warning: impossible to load the symbol: %s\n", e->message);
+						_g_error_free0 (e);
+						symbols_category_info_destroy (&info);
+						continue;
 					}
 					__finally1:
 					if (_inner_error_ != NULL) {
@@ -346,17 +363,47 @@ Symbols* symbols_construct (GType object_type, MainWindow* main_window) {
 				}
 			}
 		}
-		pixbuf = utils_get_pixbuf_from_stock (GTK_STOCK_ABOUT, GTK_ICON_SIZE_MENU);
-		gtk_list_store_append (symbols_categories_store, &iter);
-		gtk_list_store_set (symbols_categories_store, &iter, SYMBOLS_CATEGORY_COLUMN_ICON, pixbuf, SYMBOLS_CATEGORY_COLUMN_NAME, _ ("Most Used"), -1, -1);
-		symbols_symbols_stores[0] = (_tmp2_ = symbols_get_symbol_store (self, SYMBOLS_symbols_greek, G_N_ELEMENTS (SYMBOLS_symbols_greek)), _g_object_unref0 (symbols_symbols_stores[0]), _tmp2_);
-		symbols_symbols_stores[1] = (_tmp3_ = symbols_get_symbol_store (self, SYMBOLS_symbols_arrows, G_N_ELEMENTS (SYMBOLS_symbols_arrows)), _g_object_unref0 (symbols_symbols_stores[1]), _tmp3_);
-		symbols_symbols_stores[2] = (_tmp4_ = symbols_get_symbol_store (self, SYMBOLS_symbols_relations, G_N_ELEMENTS (SYMBOLS_symbols_relations)), _g_object_unref0 (symbols_symbols_stores[2]), _tmp4_);
-		symbols_symbols_stores[3] = (_tmp5_ = symbols_get_symbol_store (self, SYMBOLS_symbols_operators, G_N_ELEMENTS (SYMBOLS_symbols_operators)), _g_object_unref0 (symbols_symbols_stores[3]), _tmp5_);
-		symbols_symbols_stores[4] = (_tmp6_ = symbols_get_symbol_store (self, SYMBOLS_symbols_delimiters, G_N_ELEMENTS (SYMBOLS_symbols_delimiters)), _g_object_unref0 (symbols_symbols_stores[4]), _tmp6_);
-		symbols_symbols_stores[5] = (_tmp7_ = symbols_get_symbol_store (self, SYMBOLS_symbols_misc_math, G_N_ELEMENTS (SYMBOLS_symbols_misc_math)), _g_object_unref0 (symbols_symbols_stores[5]), _tmp7_);
-		symbols_symbols_stores[6] = (_tmp8_ = symbols_get_symbol_store (self, SYMBOLS_symbols_misc_text, G_N_ELEMENTS (SYMBOLS_symbols_misc_text)), _g_object_unref0 (symbols_symbols_stores[6]), _tmp8_);
-		symbols_symbols_stores[7] = (_tmp10_ = _g_object_ref0 (symbols_mus_store = (_tmp9_ = gtk_list_store_new ((gint) SYMBOLS_SYMBOL_COLUMN_N_COLUMNS, GDK_TYPE_PIXBUF, G_TYPE_STRING, G_TYPE_STRING, G_TYPE_STRING, G_TYPE_STRING), _g_object_unref0 (symbols_mus_store), _tmp9_)), _g_object_unref0 (symbols_symbols_stores[7]), _tmp10_);
+		_tmp6_ = utils_get_pixbuf_from_stock (GTK_STOCK_ABOUT, GTK_ICON_SIZE_MENU);
+		pixbuf = _tmp6_;
+		gtk_list_store_append (symbols_categories_store, &_tmp7_);
+		iter = _tmp7_;
+		_tmp8_ = _ ("Most Used");
+		gtk_list_store_set (symbols_categories_store, &iter, SYMBOLS_CATEGORY_COLUMN_ICON, pixbuf, SYMBOLS_CATEGORY_COLUMN_NAME, _tmp8_, -1, -1);
+		_tmp9_ = symbols_get_symbol_store (self, SYMBOLS_symbols_greek, G_N_ELEMENTS (SYMBOLS_symbols_greek));
+		_tmp10_ = _tmp9_;
+		_g_object_unref0 (symbols_symbols_stores[0]);
+		symbols_symbols_stores[0] = _tmp10_;
+		_tmp11_ = symbols_get_symbol_store (self, SYMBOLS_symbols_arrows, G_N_ELEMENTS (SYMBOLS_symbols_arrows));
+		_tmp12_ = _tmp11_;
+		_g_object_unref0 (symbols_symbols_stores[1]);
+		symbols_symbols_stores[1] = _tmp12_;
+		_tmp13_ = symbols_get_symbol_store (self, SYMBOLS_symbols_relations, G_N_ELEMENTS (SYMBOLS_symbols_relations));
+		_tmp14_ = _tmp13_;
+		_g_object_unref0 (symbols_symbols_stores[2]);
+		symbols_symbols_stores[2] = _tmp14_;
+		_tmp15_ = symbols_get_symbol_store (self, SYMBOLS_symbols_operators, G_N_ELEMENTS (SYMBOLS_symbols_operators));
+		_tmp16_ = _tmp15_;
+		_g_object_unref0 (symbols_symbols_stores[3]);
+		symbols_symbols_stores[3] = _tmp16_;
+		_tmp17_ = symbols_get_symbol_store (self, SYMBOLS_symbols_delimiters, G_N_ELEMENTS (SYMBOLS_symbols_delimiters));
+		_tmp18_ = _tmp17_;
+		_g_object_unref0 (symbols_symbols_stores[4]);
+		symbols_symbols_stores[4] = _tmp18_;
+		_tmp19_ = symbols_get_symbol_store (self, SYMBOLS_symbols_misc_math, G_N_ELEMENTS (SYMBOLS_symbols_misc_math));
+		_tmp20_ = _tmp19_;
+		_g_object_unref0 (symbols_symbols_stores[5]);
+		symbols_symbols_stores[5] = _tmp20_;
+		_tmp21_ = symbols_get_symbol_store (self, SYMBOLS_symbols_misc_text, G_N_ELEMENTS (SYMBOLS_symbols_misc_text));
+		_tmp22_ = _tmp21_;
+		_g_object_unref0 (symbols_symbols_stores[6]);
+		symbols_symbols_stores[6] = _tmp22_;
+		_tmp23_ = gtk_list_store_new ((gint) SYMBOLS_SYMBOL_COLUMN_N_COLUMNS, GDK_TYPE_PIXBUF, G_TYPE_STRING, G_TYPE_STRING, G_TYPE_STRING, G_TYPE_STRING);
+		_g_object_unref0 (symbols_mus_store);
+		symbols_mus_store = _tmp23_;
+		_tmp24_ = _g_object_ref0 (symbols_mus_store);
+		_tmp25_ = _tmp24_;
+		_g_object_unref0 (symbols_symbols_stores[7]);
+		symbols_symbols_stores[7] = _tmp25_;
 		symbols_reload_most_used_symbols ();
 		symbols_stores_initialized = TRUE;
 		_g_object_unref0 (pixbuf);
@@ -372,16 +419,36 @@ Symbols* symbols_new (MainWindow* main_window) {
 }
 
 
-static void _lambda48_ (Symbols* self) {
-	AppSettings* _tmp0_;
+static Block3Data* block3_data_ref (Block3Data* _data3_) {
+	g_atomic_int_inc (&_data3_->_ref_count_);
+	return _data3_;
+}
+
+
+static void block3_data_unref (Block3Data* _data3_) {
+	if (g_atomic_int_dec_and_test (&_data3_->_ref_count_)) {
+		_g_object_unref0 (_data3_->self);
+		_g_object_unref0 (_data3_->button);
+		_g_object_unref0 (_data3_->symbol_view);
+		_g_object_unref0 (_data3_->categories_view);
+		g_slice_free (Block3Data, _data3_);
+	}
+}
+
+
+static void _lambda49_ (Symbols* self) {
+	AppSettings* _tmp0_ = NULL;
+	AppSettings* _tmp1_;
 	gtk_list_store_clear (symbols_mus_store);
-	app_settings_clear_most_used_symbols (_tmp0_ = app_settings_get_default ());
-	_g_object_unref0 (_tmp0_);
+	_tmp0_ = app_settings_get_default ();
+	_tmp1_ = _tmp0_;
+	app_settings_clear_most_used_symbols (_tmp1_);
+	_g_object_unref0 (_tmp1_);
 }
 
 
-static void __lambda48__gtk_button_clicked (GtkButton* _sender, gpointer self) {
-	_lambda48_ (self);
+static void __lambda49__gtk_button_clicked (GtkButton* _sender, gpointer self) {
+	_lambda49_ (self);
 }
 
 
@@ -390,22 +457,35 @@ static gpointer _gtk_tree_path_copy0 (gpointer self) {
 }
 
 
-static void _g_list_free_gtk_tree_path_free (GList* self) {
-	g_list_foreach (self, (GFunc) gtk_tree_path_free, NULL);
+static void _gtk_tree_path_free0_ (gpointer var) {
+	(var == NULL) ? NULL : (var = (gtk_tree_path_free (var), NULL));
+}
+
+
+static void _g_list_free__gtk_tree_path_free0_ (GList* self) {
+	g_list_foreach (self, (GFunc) _gtk_tree_path_free0_, NULL);
 	g_list_free (self);
 }
 
 
-static void _lambda49_ (Block3Data* _data3_) {
+static void _lambda50_ (Block3Data* _data3_) {
 	Symbols * self;
+	GList* _tmp0_ = NULL;
 	GList* selected_items;
+	gconstpointer _tmp1_ = NULL;
+	GtkTreePath* _tmp2_;
 	GtkTreePath* path;
 	self = _data3_->self;
-	selected_items = gtk_icon_view_get_selected_items (_data3_->categories_view);
-	path = _gtk_tree_path_copy0 ((GtkTreePath*) g_list_nth_data (selected_items, (guint) 0));
+	_tmp0_ = gtk_icon_view_get_selected_items (_data3_->categories_view);
+	selected_items = _tmp0_;
+	_tmp1_ = g_list_nth_data (selected_items, (guint) 0);
+	_tmp2_ = _gtk_tree_path_copy0 ((GtkTreePath*) _tmp1_);
+	path = _tmp2_;
 	if (path != NULL) {
+		gint* _tmp3_ = NULL;
 		gint num;
-		num = gtk_tree_path_get_indices (path)[0];
+		_tmp3_ = gtk_tree_path_get_indices (path);
+		num = _tmp3_[0];
 		gtk_icon_view_set_model (_data3_->symbol_view, (GtkTreeModel*) symbols_symbols_stores[num]);
 		if (num == (symbols_symbols_stores_length1 - 1)) {
 			gtk_widget_show ((GtkWidget*) _data3_->button);
@@ -414,101 +494,114 @@ static void _lambda49_ (Block3Data* _data3_) {
 		}
 	}
 	_gtk_tree_path_free0 (path);
-	__g_list_free_gtk_tree_path_free0 (selected_items);
+	__g_list_free__gtk_tree_path_free0_0 (selected_items);
 }
 
 
-static void __lambda49__gtk_icon_view_selection_changed (GtkIconView* _sender, gpointer self) {
-	_lambda49_ (self);
+static void __lambda50__gtk_icon_view_selection_changed (GtkIconView* _sender, gpointer self) {
+	_lambda50_ (self);
 }
 
 
-static void _lambda50_ (Block3Data* _data3_) {
+static void _lambda51_ (Block3Data* _data3_) {
 	Symbols * self;
+	DocumentTab* _tmp0_ = NULL;
+	GList* _tmp1_ = NULL;
 	GList* selected_items;
+	gconstpointer _tmp2_ = NULL;
+	GtkTreePath* _tmp3_;
 	GtkTreePath* path;
+	GtkTreeModel* _tmp4_ = NULL;
+	GtkTreeModel* _tmp5_;
 	GtkTreeModel* model;
-	GtkTreeIter _tmp0_ = {0};
+	GtkTreeIter _tmp6_ = {0};
 	GtkTreeIter iter;
-	gboolean _tmp1_ = FALSE;
+	gboolean _tmp7_ = FALSE;
 	self = _data3_->self;
-	if (main_window_get_active_tab (self->priv->main_window) == NULL) {
+	_tmp0_ = main_window_get_active_tab (self->priv->main_window);
+	if (_tmp0_ == NULL) {
 		g_signal_emit_by_name (_data3_->symbol_view, "unselect-all");
 		return;
 	}
-	selected_items = gtk_icon_view_get_selected_items (_data3_->symbol_view);
+	_tmp1_ = gtk_icon_view_get_selected_items (_data3_->symbol_view);
+	selected_items = _tmp1_;
 	g_signal_emit_by_name (_data3_->symbol_view, "unselect-all");
-	path = _gtk_tree_path_copy0 ((GtkTreePath*) g_list_nth_data (selected_items, (guint) 0));
-	model = _g_object_ref0 (gtk_icon_view_get_model (_data3_->symbol_view));
-	iter = (_tmp0_);
+	_tmp2_ = g_list_nth_data (selected_items, (guint) 0);
+	_tmp3_ = _gtk_tree_path_copy0 ((GtkTreePath*) _tmp2_);
+	path = _tmp3_;
+	_tmp4_ = gtk_icon_view_get_model (_data3_->symbol_view);
+	_tmp5_ = _g_object_ref0 (_tmp4_);
+	model = _tmp5_;
+	iter = _tmp6_;
 	if (path != NULL) {
-		_tmp1_ = gtk_tree_model_get_iter (model, &iter, path);
+		GtkTreeIter _tmp8_ = {0};
+		gboolean _tmp9_;
+		_tmp9_ = gtk_tree_model_get_iter (model, &_tmp8_, path);
+		iter = _tmp8_;
+		_tmp7_ = _tmp9_;
 	} else {
-		_tmp1_ = FALSE;
+		_tmp7_ = FALSE;
 	}
-	if (_tmp1_) {
-		char* latex_command;
-		char* id;
-		char* package;
-		const char* _tmp2_;
-		AppSettings* _tmp3_;
-		latex_command = NULL;
-		id = NULL;
-		package = NULL;
+	if (_tmp7_) {
+		gchar* latex_command = NULL;
+		gchar* id = NULL;
+		gchar* package = NULL;
+		Document* _tmp10_ = NULL;
+		Document* _tmp11_ = NULL;
+		Document* _tmp12_ = NULL;
+		Document* _tmp13_ = NULL;
+		DocumentView* _tmp14_ = NULL;
+		const gchar* _tmp15_ = NULL;
+		AppSettings* _tmp16_ = NULL;
+		AppSettings* _tmp17_;
 		gtk_tree_model_get (model, &iter, SYMBOLS_SYMBOL_COLUMN_COMMAND, &latex_command, SYMBOLS_SYMBOL_COLUMN_ID, &id, SYMBOLS_SYMBOL_COLUMN_PACKAGE, &package, -1, -1);
-		gtk_text_buffer_begin_user_action ((GtkTextBuffer*) main_window_get_active_document (self->priv->main_window));
-		gtk_text_buffer_insert_at_cursor ((GtkTextBuffer*) main_window_get_active_document (self->priv->main_window), latex_command, -1);
-		gtk_text_buffer_insert_at_cursor ((GtkTextBuffer*) main_window_get_active_document (self->priv->main_window), " ", -1);
-		gtk_text_buffer_end_user_action ((GtkTextBuffer*) main_window_get_active_document (self->priv->main_window));
-		gtk_widget_grab_focus ((GtkWidget*) main_window_get_active_view (self->priv->main_window));
-		_tmp2_ = NULL;
-		if (_vala_strcmp0 (package, "") != 0) {
-			_tmp2_ = package;
+		_tmp10_ = main_window_get_active_document (self->priv->main_window);
+		gtk_text_buffer_begin_user_action ((GtkTextBuffer*) _tmp10_);
+		_tmp11_ = main_window_get_active_document (self->priv->main_window);
+		gtk_text_buffer_insert_at_cursor ((GtkTextBuffer*) _tmp11_, latex_command, -1);
+		_tmp12_ = main_window_get_active_document (self->priv->main_window);
+		gtk_text_buffer_insert_at_cursor ((GtkTextBuffer*) _tmp12_, " ", -1);
+		_tmp13_ = main_window_get_active_document (self->priv->main_window);
+		gtk_text_buffer_end_user_action ((GtkTextBuffer*) _tmp13_);
+		_tmp14_ = main_window_get_active_view (self->priv->main_window);
+		gtk_widget_grab_focus ((GtkWidget*) _tmp14_);
+		if (g_strcmp0 (package, "") != 0) {
+			_tmp15_ = package;
 		} else {
-			_tmp2_ = NULL;
+			_tmp15_ = NULL;
 		}
-		app_settings_add_symbol (_tmp3_ = app_settings_get_default (), id, latex_command, _tmp2_);
-		_g_object_unref0 (_tmp3_);
+		_tmp16_ = app_settings_get_default ();
+		_tmp17_ = _tmp16_;
+		app_settings_add_symbol (_tmp17_, id, latex_command, _tmp15_);
+		_g_object_unref0 (_tmp17_);
 		_g_free0 (package);
 		_g_free0 (id);
 		_g_free0 (latex_command);
 	}
 	_g_object_unref0 (model);
 	_gtk_tree_path_free0 (path);
-	__g_list_free_gtk_tree_path_free0 (selected_items);
+	__g_list_free__gtk_tree_path_free0_0 (selected_items);
 }
 
 
-static void __lambda50__gtk_icon_view_selection_changed (GtkIconView* _sender, gpointer self) {
-	_lambda50_ (self);
-}
-
-
-static Block3Data* block3_data_ref (Block3Data* _data3_) {
-	g_atomic_int_inc (&_data3_->_ref_count_);
-	return _data3_;
-}
-
-
-static void block3_data_unref (Block3Data* _data3_) {
-	if (g_atomic_int_dec_and_test (&_data3_->_ref_count_)) {
-		_g_object_unref0 (_data3_->self);
-		_g_object_unref0 (_data3_->button);
-		_g_object_unref0 (_data3_->symbol_view);
-		_g_object_unref0 (_data3_->categories_view);
-		g_slice_free (Block3Data, _data3_);
-	}
+static void __lambda51__gtk_icon_view_selection_changed (GtkIconView* _sender, gpointer self) {
+	_lambda51_ (self);
 }
 
 
 static void symbols_create_icon_views (Symbols* self) {
 	Block3Data* _data3_;
+	GtkIconView* _tmp0_ = NULL;
+	GtkIconView* _tmp1_ = NULL;
+	GtkWidget* _tmp2_ = NULL;
 	GtkWidget* sw;
+	GtkButton* _tmp3_ = NULL;
 	g_return_if_fail (self != NULL);
 	_data3_ = g_slice_new0 (Block3Data);
 	_data3_->_ref_count_ = 1;
 	_data3_->self = g_object_ref (self);
-	_data3_->categories_view = g_object_ref_sink ((GtkIconView*) gtk_icon_view_new_with_model ((GtkTreeModel*) symbols_categories_store));
+	_tmp0_ = (GtkIconView*) gtk_icon_view_new_with_model ((GtkTreeModel*) symbols_categories_store);
+	_data3_->categories_view = g_object_ref_sink (_tmp0_);
 	gtk_icon_view_set_pixbuf_column (_data3_->categories_view, (gint) SYMBOLS_CATEGORY_COLUMN_ICON);
 	gtk_icon_view_set_text_column (_data3_->categories_view, (gint) SYMBOLS_CATEGORY_COLUMN_NAME);
 	gtk_icon_view_set_selection_mode (_data3_->categories_view, GTK_SELECTION_SINGLE);
@@ -518,31 +611,37 @@ static void symbols_create_icon_views (Symbols* self) {
 	gtk_icon_view_set_column_spacing (_data3_->categories_view, 0);
 	gtk_box_pack_start ((GtkBox*) self, (GtkWidget*) _data3_->categories_view, FALSE, FALSE, (guint) 0);
 	gtk_widget_show ((GtkWidget*) _data3_->categories_view);
-	_data3_->symbol_view = g_object_ref_sink ((GtkIconView*) gtk_icon_view_new_with_model ((GtkTreeModel*) symbols_symbols_stores[0]));
+	_tmp1_ = (GtkIconView*) gtk_icon_view_new_with_model ((GtkTreeModel*) symbols_symbols_stores[0]);
+	_data3_->symbol_view = g_object_ref_sink (_tmp1_);
 	gtk_icon_view_set_pixbuf_column (_data3_->symbol_view, (gint) SYMBOLS_SYMBOL_COLUMN_PIXBUF);
 	gtk_icon_view_set_tooltip_column (_data3_->symbol_view, (gint) SYMBOLS_SYMBOL_COLUMN_TOOLTIP);
 	gtk_icon_view_set_selection_mode (_data3_->symbol_view, GTK_SELECTION_SINGLE);
 	gtk_icon_view_set_spacing (_data3_->symbol_view, 0);
 	gtk_icon_view_set_row_spacing (_data3_->symbol_view, 0);
 	gtk_icon_view_set_column_spacing (_data3_->symbol_view, 0);
-	sw = utils_add_scrollbar ((GtkWidget*) _data3_->symbol_view);
-	gtk_box_pack_start ((GtkBox*) self, sw, TRUE, TRUE, 0);
+	_tmp2_ = utils_add_scrollbar ((GtkWidget*) _data3_->symbol_view);
+	sw = _tmp2_;
+	gtk_box_pack_start ((GtkBox*) self, sw, TRUE, TRUE, (guint) 0);
 	gtk_widget_show_all (sw);
-	_data3_->button = g_object_ref_sink ((GtkButton*) gtk_button_new_from_stock (GTK_STOCK_CLEAR));
+	_tmp3_ = (GtkButton*) gtk_button_new_from_stock (GTK_STOCK_CLEAR);
+	_data3_->button = g_object_ref_sink (_tmp3_);
 	gtk_box_pack_start ((GtkBox*) self, (GtkWidget*) _data3_->button, FALSE, FALSE, (guint) 2);
-	g_signal_connect_object (_data3_->button, "clicked", (GCallback) __lambda48__gtk_button_clicked, self, 0);
-	g_signal_connect_data (_data3_->categories_view, "selection-changed", (GCallback) __lambda49__gtk_icon_view_selection_changed, block3_data_ref (_data3_), (GClosureNotify) block3_data_unref, 0);
-	g_signal_connect_data (_data3_->symbol_view, "selection-changed", (GCallback) __lambda50__gtk_icon_view_selection_changed, block3_data_ref (_data3_), (GClosureNotify) block3_data_unref, 0);
+	g_signal_connect_object (_data3_->button, "clicked", (GCallback) __lambda49__gtk_button_clicked, self, 0);
+	g_signal_connect_data (_data3_->categories_view, "selection-changed", (GCallback) __lambda50__gtk_icon_view_selection_changed, block3_data_ref (_data3_), (GClosureNotify) block3_data_unref, 0);
+	g_signal_connect_data (_data3_->symbol_view, "selection-changed", (GCallback) __lambda51__gtk_icon_view_selection_changed, block3_data_ref (_data3_), (GClosureNotify) block3_data_unref, 0);
 	_g_object_unref0 (sw);
 	block3_data_unref (_data3_);
+	_data3_ = NULL;
 }
 
 
 static GtkListStore* symbols_get_symbol_store (Symbols* self, SymbolsSymbolInfo* symbols, int symbols_length1) {
 	GtkListStore* result = NULL;
+	GtkListStore* _tmp0_ = NULL;
 	GtkListStore* symbol_store;
 	g_return_val_if_fail (self != NULL, NULL);
-	symbol_store = gtk_list_store_new ((gint) SYMBOLS_SYMBOL_COLUMN_N_COLUMNS, GDK_TYPE_PIXBUF, G_TYPE_STRING, G_TYPE_STRING, G_TYPE_STRING, G_TYPE_STRING);
+	_tmp0_ = gtk_list_store_new ((gint) SYMBOLS_SYMBOL_COLUMN_N_COLUMNS, GDK_TYPE_PIXBUF, G_TYPE_STRING, G_TYPE_STRING, G_TYPE_STRING, G_TYPE_STRING);
+	symbol_store = _tmp0_;
 	{
 		SymbolsSymbolInfo* symbol_collection;
 		int symbol_collection_length1;
@@ -550,9 +649,12 @@ static GtkListStore* symbols_get_symbol_store (Symbols* self, SymbolsSymbolInfo*
 		symbol_collection = symbols;
 		symbol_collection_length1 = symbols_length1;
 		for (symbol_it = 0; symbol_it < symbols_length1; symbol_it = symbol_it + 1) {
-			SymbolsSymbolInfo _tmp0_ = {0};
+			SymbolsSymbolInfo _tmp1_;
+			SymbolsSymbolInfo _tmp2_ = {0};
 			SymbolsSymbolInfo symbol;
-			symbol = (symbols_symbol_info_copy (&symbol_collection[symbol_it], &_tmp0_), _tmp0_);
+			symbols_symbol_info_copy (&symbol_collection[symbol_it], &_tmp2_);
+			_tmp1_ = _tmp2_;
+			symbol = _tmp1_;
 			{
 				symbols_insert_symbol (symbol_store, -1, &symbol);
 				symbols_symbol_info_destroy (&symbol);
@@ -564,22 +666,24 @@ static GtkListStore* symbols_get_symbol_store (Symbols* self, SymbolsSymbolInfo*
 }
 
 
-static glong string_get_length (const char* self) {
-	glong result;
-	g_return_val_if_fail (self != NULL, 0L);
-	result = g_utf8_strlen (self, (gssize) (-1));
+static gchar string_get (const gchar* self, glong index) {
+	gchar result = '\0';
+	g_return_val_if_fail (self != NULL, '\0');
+	result = ((gchar*) self)[index];
 	return result;
 }
 
 
-static char* string_slice (const char* self, glong start, glong end) {
-	char* result = NULL;
+static gchar* string_slice (const gchar* self, glong start, glong end) {
+	gchar* result = NULL;
+	gint _tmp0_;
 	glong string_length;
-	gboolean _tmp0_ = FALSE;
 	gboolean _tmp1_ = FALSE;
-	const char* start_string;
+	gboolean _tmp2_ = FALSE;
+	gchar* _tmp3_ = NULL;
 	g_return_val_if_fail (self != NULL, NULL);
-	string_length = string_get_length (self);
+	_tmp0_ = strlen (self);
+	string_length = (glong) _tmp0_;
 	if (start < 0) {
 		start = string_length + start;
 	}
@@ -587,48 +691,54 @@ static char* string_slice (const char* self, glong start, glong end) {
 		end = string_length + end;
 	}
 	if (start >= 0) {
-		_tmp0_ = start <= string_length;
+		_tmp1_ = start <= string_length;
 	} else {
-		_tmp0_ = FALSE;
+		_tmp1_ = FALSE;
 	}
-	g_return_val_if_fail (_tmp0_, NULL);
+	g_return_val_if_fail (_tmp1_, NULL);
 	if (end >= 0) {
-		_tmp1_ = end <= string_length;
+		_tmp2_ = end <= string_length;
 	} else {
-		_tmp1_ = FALSE;
+		_tmp2_ = FALSE;
 	}
-	g_return_val_if_fail (_tmp1_, NULL);
+	g_return_val_if_fail (_tmp2_, NULL);
 	g_return_val_if_fail (start <= end, NULL);
-	start_string = g_utf8_offset_to_pointer (self, start);
-	result = g_strndup (start_string, ((gchar*) g_utf8_offset_to_pointer (start_string, end - start)) - ((gchar*) start_string));
+	_tmp3_ = g_strndup (((gchar*) self) + start, (gsize) (end - start));
+	result = _tmp3_;
 	return result;
 }
 
 
-static char* symbols_get_symbol_id (const char* path) {
-	char* result = NULL;
+static gchar* symbols_get_symbol_id (const gchar* path) {
+	gchar* result = NULL;
+	gint _tmp0_;
 	glong l;
 	gboolean second;
 	g_return_val_if_fail (path != NULL, NULL);
-	l = string_get_length (path);
+	_tmp0_ = strlen (path);
+	l = (glong) _tmp0_;
 	second = FALSE;
 	{
 		glong i;
 		i = l - 1;
 		{
-			gboolean _tmp0_;
-			_tmp0_ = TRUE;
+			gboolean _tmp1_;
+			_tmp1_ = TRUE;
 			while (TRUE) {
-				if (!_tmp0_) {
+				gchar _tmp2_;
+				if (!_tmp1_) {
 					i--;
 				}
-				_tmp0_ = FALSE;
+				_tmp1_ = FALSE;
 				if (!(i >= 0)) {
 					break;
 				}
-				if (g_utf8_get_char (g_utf8_offset_to_pointer (path, i)) == '/') {
+				_tmp2_ = string_get (path, i);
+				if (_tmp2_ == '/') {
 					if (second) {
-						result = string_slice (path, i + 1, l);
+						gchar* _tmp3_ = NULL;
+						_tmp3_ = string_slice (path, i + 1, l);
+						result = _tmp3_;
 						return result;
 					}
 					second = TRUE;
@@ -641,31 +751,58 @@ static char* symbols_get_symbol_id (const char* path) {
 
 
 void symbols_reload_most_used_symbols (void) {
-	AppSettings* _tmp0_;
-	GeeList* _tmp1_;
+	AppSettings* _tmp0_ = NULL;
+	AppSettings* _tmp1_;
+	GeeList* _tmp2_ = NULL;
+	GeeList* _tmp3_;
 	GeeList* most_used_symbols;
-	most_used_symbols = (_tmp1_ = app_settings_get_most_used_symbols (_tmp0_ = app_settings_get_default ()), _g_object_unref0 (_tmp0_), _tmp1_);
+	_tmp0_ = app_settings_get_default ();
+	_tmp1_ = _tmp0_;
+	_tmp2_ = app_settings_get_most_used_symbols (_tmp1_);
+	_tmp3_ = _tmp2_;
+	_g_object_unref0 (_tmp1_);
+	most_used_symbols = _tmp3_;
 	gtk_list_store_clear (symbols_mus_store);
 	{
-		GeeIterator* _mus_it;
-		_mus_it = gee_iterable_iterator ((GeeIterable*) most_used_symbols);
+		GeeList* _tmp4_;
+		GeeList* _mus_list;
+		gint _tmp5_;
+		gint _mus_size;
+		gint _mus_index;
+		_tmp4_ = _g_object_ref0 (most_used_symbols);
+		_mus_list = _tmp4_;
+		_tmp5_ = gee_collection_get_size ((GeeCollection*) _mus_list);
+		_mus_size = _tmp5_;
+		_mus_index = -1;
 		while (TRUE) {
-			MostUsedSymbol* _tmp2_;
-			MostUsedSymbol _tmp3_ = {0};
-			MostUsedSymbol _tmp4_;
+			gpointer _tmp6_ = NULL;
+			MostUsedSymbol* _tmp7_;
+			MostUsedSymbol _tmp8_;
+			MostUsedSymbol _tmp9_ = {0};
+			MostUsedSymbol _tmp10_;
 			MostUsedSymbol mus;
-			SymbolsSymbolInfo _tmp5_ = {0};
+			SymbolsSymbolInfo _tmp11_ = {0};
+			SymbolsSymbolInfo _tmp12_ = {0};
 			SymbolsSymbolInfo symbol;
-			if (!gee_iterator_next (_mus_it)) {
+			_mus_index = _mus_index + 1;
+			if (!(_mus_index < _mus_size)) {
 				break;
 			}
-			mus = (_tmp4_ = (most_used_symbol_copy (_tmp2_ = (MostUsedSymbol*) gee_iterator_get (_mus_it), &_tmp3_), _tmp3_), _most_used_symbol_free0 (_tmp2_), _tmp4_);
-			symbol = (symbols_get_symbol_info_from_most_used (&mus, &_tmp5_), _tmp5_);
+			_tmp6_ = gee_list_get (_mus_list, _mus_index);
+			_tmp7_ = (MostUsedSymbol*) _tmp6_;
+			most_used_symbol_copy (_tmp7_, &_tmp9_);
+			_tmp8_ = _tmp9_;
+			_tmp10_ = _tmp8_;
+			_most_used_symbol_free0 (_tmp7_);
+			mus = _tmp10_;
+			symbols_get_symbol_info_from_most_used (&mus, &_tmp11_);
+			_tmp12_ = _tmp11_;
+			symbol = _tmp12_;
 			symbols_insert_symbol (symbols_mus_store, -1, &symbol);
 			symbols_symbol_info_destroy (&symbol);
 			most_used_symbol_destroy (&mus);
 		}
-		_g_object_unref0 (_mus_it);
+		_g_object_unref0 (_mus_list);
 	}
 	_g_object_unref0 (most_used_symbols);
 }
@@ -673,64 +810,86 @@ void symbols_reload_most_used_symbols (void) {
 
 static void symbols_get_symbol_info_from_most_used (MostUsedSymbol* mus, SymbolsSymbolInfo* result) {
 	SymbolsSymbolInfo symbol = {0};
-	char* _tmp0_;
-	char* _tmp1_;
-	char* _tmp2_;
+	gchar* _tmp0_;
+	gchar* _tmp1_;
+	gchar* _tmp2_;
 	memset (&symbol, 0, sizeof (SymbolsSymbolInfo));
-	symbol.filename = (_tmp0_ = g_strconcat (DATA_DIR "/images/", (*mus).id, NULL), _g_free0 (symbol.filename), _tmp0_);
-	symbol.latex_command = (_tmp1_ = g_strdup ((*mus).latex_command), _g_free0 (symbol.latex_command), _tmp1_);
-	symbol.package_required = (_tmp2_ = g_strdup ((*mus).package_required), _g_free0 (symbol.package_required), _tmp2_);
+	_tmp0_ = g_strconcat (DATA_DIR "/images/", (*mus).id, NULL);
+	_g_free0 (symbol.filename);
+	symbol.filename = _tmp0_;
+	_tmp1_ = g_strdup ((*mus).latex_command);
+	_g_free0 (symbol.latex_command);
+	symbol.latex_command = _tmp1_;
+	_tmp2_ = g_strdup ((*mus).package_required);
+	_g_free0 (symbol.package_required);
+	symbol.package_required = _tmp2_;
 	*result = symbol;
 	return;
 }
 
 
 static void symbols_insert_symbol (GtkListStore* symbol_store, gint index, SymbolsSymbolInfo* symbol) {
+	GdkPixbuf* _tmp0_ = NULL;
+	GdkPixbuf* pixbuf;
+	gchar* _tmp1_ = NULL;
+	gchar* tooltip;
+	GtkTreeIter iter = {0};
+	gchar* _tmp7_;
+	gchar* _tmp8_;
+	gchar* _tmp10_ = NULL;
+	gchar* _tmp11_;
 	GError * _inner_error_ = NULL;
 	g_return_if_fail (symbol_store != NULL);
-	{
-		GdkPixbuf* pixbuf;
-		char* tooltip;
-		GtkTreeIter iter = {0};
-		char* _tmp2_;
-		char* _tmp4_;
-		pixbuf = gdk_pixbuf_new_from_file ((*symbol).filename, &_inner_error_);
-		if (_inner_error_ != NULL) {
-			goto __catch2_g_error;
-		}
-		tooltip = g_markup_escape_text ((*symbol).latex_command, -1);
-		if ((*symbol).package_required != NULL) {
-			char* _tmp0_;
-			char* _tmp1_;
-			tooltip = (_tmp1_ = g_strconcat (tooltip, _tmp0_ = g_strdup_printf (" (package %s)", (*symbol).package_required), NULL), _g_free0 (tooltip), _tmp1_);
-			_g_free0 (_tmp0_);
-		}
-		if (index == (-1)) {
-			gtk_list_store_append (symbol_store, &iter);
-		} else {
-			gtk_list_store_insert (symbol_store, &iter, index);
-		}
-		_tmp2_ = g_strdup ((*symbol).package_required);
-		if (_tmp2_ == NULL) {
-			char* _tmp3_;
-			_tmp2_ = (_tmp3_ = g_strdup (""), _g_free0 (_tmp2_), _tmp3_);
-		}
-		gtk_list_store_set (symbol_store, &iter, SYMBOLS_SYMBOL_COLUMN_PIXBUF, pixbuf, SYMBOLS_SYMBOL_COLUMN_COMMAND, (*symbol).latex_command, SYMBOLS_SYMBOL_COLUMN_TOOLTIP, tooltip, SYMBOLS_SYMBOL_COLUMN_ID, _tmp4_ = symbols_get_symbol_id ((*symbol).filename), SYMBOLS_SYMBOL_COLUMN_PACKAGE, _tmp2_, -1, -1);
-		_g_free0 (_tmp4_);
-		_g_free0 (_tmp2_);
+	_tmp0_ = gdk_pixbuf_new_from_file ((*symbol).filename, &_inner_error_);
+	pixbuf = _tmp0_;
+	if (_inner_error_ != NULL) {
+		goto __catch2_g_error;
+	}
+	_tmp1_ = g_markup_escape_text ((*symbol).latex_command, (gssize) (-1));
+	tooltip = _tmp1_;
+	if ((*symbol).package_required != NULL) {
+		gchar* _tmp2_ = NULL;
+		gchar* _tmp3_;
+		gchar* _tmp4_;
+		_tmp2_ = g_strdup_printf (" (package %s)", (*symbol).package_required);
+		_tmp3_ = _tmp2_;
+		_tmp4_ = g_strconcat (tooltip, _tmp3_, NULL);
 		_g_free0 (tooltip);
-		_g_object_unref0 (pixbuf);
+		tooltip = _tmp4_;
+		_g_free0 (_tmp3_);
+	}
+	if (index == (-1)) {
+		GtkTreeIter _tmp5_ = {0};
+		gtk_list_store_append (symbol_store, &_tmp5_);
+		iter = _tmp5_;
+	} else {
+		GtkTreeIter _tmp6_ = {0};
+		gtk_list_store_insert (symbol_store, &_tmp6_, index);
+		iter = _tmp6_;
 	}
+	_tmp7_ = g_strdup ((*symbol).package_required);
+	_tmp8_ = _tmp7_;
+	if (_tmp8_ == NULL) {
+		gchar* _tmp9_;
+		_tmp9_ = g_strdup ("");
+		_g_free0 (_tmp8_);
+		_tmp8_ = _tmp9_;
+	}
+	_tmp10_ = symbols_get_symbol_id ((*symbol).filename);
+	_tmp11_ = _tmp10_;
+	gtk_list_store_set (symbol_store, &iter, SYMBOLS_SYMBOL_COLUMN_PIXBUF, pixbuf, SYMBOLS_SYMBOL_COLUMN_COMMAND, (*symbol).latex_command, SYMBOLS_SYMBOL_COLUMN_TOOLTIP, tooltip, SYMBOLS_SYMBOL_COLUMN_ID, _tmp11_, SYMBOLS_SYMBOL_COLUMN_PACKAGE, _tmp8_, -1, -1);
+	_g_free0 (_tmp11_);
+	_g_free0 (_tmp8_);
+	_g_free0 (tooltip);
+	_g_object_unref0 (pixbuf);
 	goto __finally2;
 	__catch2_g_error:
 	{
 		GError * e;
 		e = _inner_error_;
 		_inner_error_ = NULL;
-		{
-			fprintf (stderr, "Warning: impossible to load the symbol: %s\n", e->message);
-			_g_error_free0 (e);
-		}
+		fprintf (stderr, "Warning: impossible to load the symbol: %s\n", e->message);
+		_g_error_free0 (e);
 	}
 	__finally2:
 	if (_inner_error_ != NULL) {
@@ -743,18 +902,27 @@ static void symbols_insert_symbol (GtkListStore* symbol_store, gint index, Symbo
 
 void symbols_insert_most_used_symbol (gint index, MostUsedSymbol* symbol) {
 	SymbolsSymbolInfo _tmp0_ = {0};
-	SymbolsSymbolInfo _tmp1_;
+	SymbolsSymbolInfo _tmp1_ = {0};
 	SymbolsSymbolInfo _tmp2_;
-	symbols_insert_symbol (symbols_mus_store, index, (_tmp2_ = _tmp1_ = (symbols_get_symbol_info_from_most_used (symbol, &_tmp0_), _tmp0_), &_tmp2_));
-	symbols_symbol_info_destroy (&_tmp1_);
+	symbols_get_symbol_info_from_most_used (symbol, &_tmp0_);
+	_tmp1_ = _tmp0_;
+	_tmp2_ = _tmp1_;
+	symbols_insert_symbol (symbols_mus_store, index, &_tmp2_);
+	symbols_symbol_info_destroy (&_tmp2_);
 }
 
 
 void symbols_remove_most_used_symbol (gint index) {
+	GtkTreePath* _tmp0_ = NULL;
 	GtkTreePath* path;
 	GtkTreeIter iter = {0};
-	path = gtk_tree_path_new_from_indices (index, -1, -1);
-	if (gtk_tree_model_get_iter ((GtkTreeModel*) symbols_mus_store, &iter, path)) {
+	GtkTreeIter _tmp1_ = {0};
+	gboolean _tmp2_;
+	_tmp0_ = gtk_tree_path_new_from_indices (index, -1, -1);
+	path = _tmp0_;
+	_tmp2_ = gtk_tree_model_get_iter ((GtkTreeModel*) symbols_mus_store, &_tmp1_, path);
+	iter = _tmp1_;
+	if (_tmp2_) {
 		gtk_list_store_remove (symbols_mus_store, &iter);
 	}
 	_gtk_tree_path_free0 (path);
@@ -762,23 +930,35 @@ void symbols_remove_most_used_symbol (gint index) {
 
 
 void symbols_swap_most_used_symbol (gint current_index, gint new_index) {
+	GtkTreePath* _tmp0_ = NULL;
 	GtkTreePath* current_path;
+	GtkTreePath* _tmp1_ = NULL;
 	GtkTreePath* new_path;
-	GtkTreeIter _tmp0_ = {0};
+	GtkTreeIter _tmp2_ = {0};
 	GtkTreeIter current_iter;
-	GtkTreeIter _tmp1_ = {0};
+	GtkTreeIter _tmp3_ = {0};
 	GtkTreeIter new_iter;
-	gboolean _tmp2_ = FALSE;
-	current_path = gtk_tree_path_new_from_indices (current_index, -1, -1);
-	new_path = gtk_tree_path_new_from_indices (new_index, -1, -1);
-	current_iter = (_tmp0_);
-	new_iter = (_tmp1_);
-	if (gtk_tree_model_get_iter ((GtkTreeModel*) symbols_mus_store, &current_iter, current_path)) {
-		_tmp2_ = gtk_tree_model_get_iter ((GtkTreeModel*) symbols_mus_store, &new_iter, new_path);
+	gboolean _tmp4_ = FALSE;
+	GtkTreeIter _tmp5_ = {0};
+	gboolean _tmp6_;
+	_tmp0_ = gtk_tree_path_new_from_indices (current_index, -1, -1);
+	current_path = _tmp0_;
+	_tmp1_ = gtk_tree_path_new_from_indices (new_index, -1, -1);
+	new_path = _tmp1_;
+	current_iter = _tmp2_;
+	new_iter = _tmp3_;
+	_tmp6_ = gtk_tree_model_get_iter ((GtkTreeModel*) symbols_mus_store, &_tmp5_, current_path);
+	current_iter = _tmp5_;
+	if (_tmp6_) {
+		GtkTreeIter _tmp7_ = {0};
+		gboolean _tmp8_;
+		_tmp8_ = gtk_tree_model_get_iter ((GtkTreeModel*) symbols_mus_store, &_tmp7_, new_path);
+		new_iter = _tmp7_;
+		_tmp4_ = _tmp8_;
 	} else {
-		_tmp2_ = FALSE;
+		_tmp4_ = FALSE;
 	}
-	if (_tmp2_) {
+	if (_tmp4_) {
 		gtk_list_store_move_before (symbols_mus_store, &current_iter, &new_iter);
 	}
 	_gtk_tree_path_free0 (new_path);
@@ -794,9 +974,9 @@ static void symbols_symbol_info_copy (const SymbolsSymbolInfo* self, SymbolsSymb
 
 
 static void symbols_symbol_info_destroy (SymbolsSymbolInfo* self) {
-	_g_free0 (self->filename);
-	_g_free0 (self->latex_command);
-	_g_free0 (self->package_required);
+	_g_free0 ((*self).filename);
+	_g_free0 ((*self).latex_command);
+	_g_free0 ((*self).package_required);
 }
 
 
@@ -832,8 +1012,8 @@ static void symbols_category_info_copy (const SymbolsCategoryInfo* self, Symbols
 
 
 static void symbols_category_info_destroy (SymbolsCategoryInfo* self) {
-	_g_free0 (self->name);
-	_g_free0 (self->icon);
+	_g_free0 ((*self).name);
+	_g_free0 ((*self).icon);
 }
 
 
@@ -863,10 +1043,12 @@ static GType symbols_category_info_get_type (void) {
 
 
 static void symbols_class_init (SymbolsClass * klass) {
+	GtkListStore** _tmp0_ = NULL;
 	symbols_parent_class = g_type_class_peek_parent (klass);
 	g_type_class_add_private (klass, sizeof (SymbolsPrivate));
 	G_OBJECT_CLASS (klass)->finalize = symbols_finalize;
-	symbols_symbols_stores = g_new0 (GtkListStore*, 8 + 1);
+	_tmp0_ = g_new0 (GtkListStore*, 8 + 1);
+	symbols_symbols_stores = _tmp0_;
 	symbols_symbols_stores_length1 = 8;
 }
 
@@ -895,16 +1077,4 @@ GType symbols_get_type (void) {
 }
 
 
-static int _vala_strcmp0 (const char * str1, const char * str2) {
-	if (str1 == NULL) {
-		return -(str1 != str2);
-	}
-	if (str2 == NULL) {
-		return str1 != str2;
-	}
-	return strcmp (str1, str2);
-}
-
-
-
 
diff --git a/src/C/tab_info_bar.c b/src/C/tab_info_bar.c
index d0a0740..5ae1bff 100644
--- a/src/C/tab_info_bar.c
+++ b/src/C/tab_info_bar.c
@@ -1,4 +1,4 @@
-/* tab_info_bar.c generated by valac 0.10.3, the Vala compiler
+/* tab_info_bar.c generated by valac 0.12.1, the Vala compiler
  * generated from tab_info_bar.vala, do not modify */
 
 /*
@@ -58,13 +58,12 @@ GType tab_info_bar_get_type (void) G_GNUC_CONST;
 enum  {
 	TAB_INFO_BAR_DUMMY_PROPERTY
 };
-TabInfoBar* tab_info_bar_new (const char* primary_msg, const char* secondary_msg, GtkMessageType msg_type);
-TabInfoBar* tab_info_bar_construct (GType object_type, const char* primary_msg, const char* secondary_msg, GtkMessageType msg_type);
+TabInfoBar* tab_info_bar_new (const gchar* primary_msg, const gchar* secondary_msg, GtkMessageType msg_type);
+TabInfoBar* tab_info_bar_construct (GType object_type, const gchar* primary_msg, const gchar* secondary_msg, GtkMessageType msg_type);
 void tab_info_bar_add_ok_button (TabInfoBar* self);
 static void _lambda11_ (gint response_id, TabInfoBar* self);
 static void __lambda11__gtk_info_bar_response (GtkInfoBar* _sender, gint response_id, gpointer self);
-void tab_info_bar_add_stock_button_with_text (TabInfoBar* self, const char* text, const char* stock_id, gint response_id);
-
+void tab_info_bar_add_stock_button_with_text (TabInfoBar* self, const gchar* text, const gchar* stock_id, gint response_id);
 
 
 static gpointer _g_object_ref0 (gpointer self) {
@@ -72,65 +71,103 @@ static gpointer _g_object_ref0 (gpointer self) {
 }
 
 
-TabInfoBar* tab_info_bar_construct (GType object_type, const char* primary_msg, const char* secondary_msg, GtkMessageType msg_type) {
-	TabInfoBar * self;
+TabInfoBar* tab_info_bar_construct (GType object_type, const gchar* primary_msg, const gchar* secondary_msg, GtkMessageType msg_type) {
+	TabInfoBar * self = NULL;
+	GtkWidget* _tmp0_ = NULL;
+	GtkHBox* _tmp1_;
 	GtkHBox* content_area;
-	char* stock_id;
+	gchar* stock_id = NULL;
+	GtkImage* _tmp6_ = NULL;
 	GtkImage* image;
+	GtkVBox* _tmp7_ = NULL;
 	GtkVBox* vbox;
-	char* _tmp4_;
-	char* _tmp5_;
-	GtkLabel* _tmp6_;
+	gchar* _tmp8_;
+	gchar* _tmp9_;
+	gchar* _tmp10_;
+	gchar* _tmp11_;
+	GtkLabel* _tmp12_ = NULL;
+	GtkLabel* _tmp13_;
 	GtkLabel* primary_label;
-	char* _tmp7_;
-	char* _tmp8_;
-	GtkLabel* _tmp9_;
+	gchar* _tmp14_;
+	gchar* _tmp15_;
+	gchar* _tmp16_;
+	gchar* _tmp17_;
+	GtkLabel* _tmp18_ = NULL;
+	GtkLabel* _tmp19_;
 	GtkLabel* secondary_label;
 	g_return_val_if_fail (primary_msg != NULL, NULL);
 	g_return_val_if_fail (secondary_msg != NULL, NULL);
-	self = g_object_newv (object_type, 0, NULL);
-	content_area = _g_object_ref0 (GTK_HBOX (gtk_info_bar_get_content_area ((GtkInfoBar*) self)));
-	stock_id = NULL;
+	self = (TabInfoBar*) g_object_new (object_type, NULL);
+	_tmp0_ = gtk_info_bar_get_content_area ((GtkInfoBar*) self);
+	_tmp1_ = _g_object_ref0 (GTK_HBOX (_tmp0_));
+	content_area = _tmp1_;
 	switch (msg_type) {
 		case GTK_MESSAGE_ERROR:
 		{
-			char* _tmp0_;
-			stock_id = (_tmp0_ = g_strdup (GTK_STOCK_DIALOG_ERROR), _g_free0 (stock_id), _tmp0_);
+			gchar* _tmp2_;
+			_tmp2_ = g_strdup (GTK_STOCK_DIALOG_ERROR);
+			_g_free0 (stock_id);
+			stock_id = _tmp2_;
 			break;
 		}
 		case GTK_MESSAGE_QUESTION:
 		{
-			char* _tmp1_;
-			stock_id = (_tmp1_ = g_strdup (GTK_STOCK_DIALOG_QUESTION), _g_free0 (stock_id), _tmp1_);
+			gchar* _tmp3_;
+			_tmp3_ = g_strdup (GTK_STOCK_DIALOG_QUESTION);
+			_g_free0 (stock_id);
+			stock_id = _tmp3_;
 			break;
 		}
 		case GTK_MESSAGE_WARNING:
 		{
-			char* _tmp2_;
-			stock_id = (_tmp2_ = g_strdup (GTK_STOCK_DIALOG_WARNING), _g_free0 (stock_id), _tmp2_);
+			gchar* _tmp4_;
+			_tmp4_ = g_strdup (GTK_STOCK_DIALOG_WARNING);
+			_g_free0 (stock_id);
+			stock_id = _tmp4_;
 			break;
 		}
 		default:
+		case GTK_MESSAGE_INFO:
 		{
-			char* _tmp3_;
-			stock_id = (_tmp3_ = g_strdup (GTK_STOCK_DIALOG_INFO), _g_free0 (stock_id), _tmp3_);
+			gchar* _tmp5_;
+			_tmp5_ = g_strdup (GTK_STOCK_DIALOG_INFO);
+			_g_free0 (stock_id);
+			stock_id = _tmp5_;
 			break;
 		}
 	}
-	image = g_object_ref_sink ((GtkImage*) gtk_image_new_from_stock (stock_id, GTK_ICON_SIZE_DIALOG));
-	gtk_misc_set_alignment ((GtkMisc*) image, (float) 0.5, (float) 0.0);
+	_tmp6_ = (GtkImage*) gtk_image_new_from_stock (stock_id, GTK_ICON_SIZE_DIALOG);
+	image = g_object_ref_sink (_tmp6_);
+	gtk_misc_set_alignment ((GtkMisc*) image, (gfloat) 0.5, (gfloat) 0.0);
 	gtk_box_pack_start ((GtkBox*) content_area, (GtkWidget*) image, FALSE, FALSE, (guint) 0);
-	vbox = g_object_ref_sink ((GtkVBox*) gtk_vbox_new (FALSE, 10));
+	_tmp7_ = (GtkVBox*) gtk_vbox_new (FALSE, 10);
+	vbox = g_object_ref_sink (_tmp7_);
 	gtk_box_pack_start ((GtkBox*) content_area, (GtkWidget*) vbox, TRUE, TRUE, (guint) 0);
-	primary_label = (_tmp6_ = g_object_ref_sink ((GtkLabel*) gtk_label_new (_tmp5_ = g_strconcat (_tmp4_ = g_strconcat ("<b>", primary_msg, NULL), "</b>", NULL))), _g_free0 (_tmp5_), _g_free0 (_tmp4_), _tmp6_);
+	_tmp8_ = g_strconcat ("<b>", primary_msg, NULL);
+	_tmp9_ = _tmp8_;
+	_tmp10_ = g_strconcat (_tmp9_, "</b>", NULL);
+	_tmp11_ = _tmp10_;
+	_tmp12_ = (GtkLabel*) gtk_label_new (_tmp11_);
+	_tmp13_ = g_object_ref_sink (_tmp12_);
+	_g_free0 (_tmp11_);
+	_g_free0 (_tmp9_);
+	primary_label = _tmp13_;
 	gtk_box_pack_start ((GtkBox*) vbox, (GtkWidget*) primary_label, FALSE, FALSE, (guint) 0);
-	gtk_misc_set_alignment ((GtkMisc*) primary_label, (float) 0.0, (float) 0.5);
+	gtk_misc_set_alignment ((GtkMisc*) primary_label, (gfloat) 0.0, (gfloat) 0.5);
 	gtk_label_set_selectable (primary_label, TRUE);
 	gtk_label_set_line_wrap (primary_label, TRUE);
 	gtk_label_set_use_markup (primary_label, TRUE);
-	secondary_label = (_tmp9_ = g_object_ref_sink ((GtkLabel*) gtk_label_new (_tmp8_ = g_strconcat (_tmp7_ = g_strconcat ("<small>", secondary_msg, NULL), "</small>", NULL))), _g_free0 (_tmp8_), _g_free0 (_tmp7_), _tmp9_);
+	_tmp14_ = g_strconcat ("<small>", secondary_msg, NULL);
+	_tmp15_ = _tmp14_;
+	_tmp16_ = g_strconcat (_tmp15_, "</small>", NULL);
+	_tmp17_ = _tmp16_;
+	_tmp18_ = (GtkLabel*) gtk_label_new (_tmp17_);
+	_tmp19_ = g_object_ref_sink (_tmp18_);
+	_g_free0 (_tmp17_);
+	_g_free0 (_tmp15_);
+	secondary_label = _tmp19_;
 	gtk_box_pack_start ((GtkBox*) vbox, (GtkWidget*) secondary_label, FALSE, FALSE, (guint) 0);
-	gtk_misc_set_alignment ((GtkMisc*) secondary_label, (float) 0.0, (float) 0.5);
+	gtk_misc_set_alignment ((GtkMisc*) secondary_label, (gfloat) 0.0, (gfloat) 0.5);
 	gtk_label_set_selectable (secondary_label, TRUE);
 	gtk_label_set_line_wrap (secondary_label, TRUE);
 	gtk_label_set_use_markup (secondary_label, TRUE);
@@ -146,7 +183,7 @@ TabInfoBar* tab_info_bar_construct (GType object_type, const char* primary_msg,
 }
 
 
-TabInfoBar* tab_info_bar_new (const char* primary_msg, const char* secondary_msg, GtkMessageType msg_type) {
+TabInfoBar* tab_info_bar_new (const gchar* primary_msg, const gchar* secondary_msg, GtkMessageType msg_type) {
 	return tab_info_bar_construct (TYPE_TAB_INFO_BAR, primary_msg, secondary_msg, msg_type);
 }
 
@@ -170,14 +207,20 @@ void tab_info_bar_add_ok_button (TabInfoBar* self) {
 }
 
 
-void tab_info_bar_add_stock_button_with_text (TabInfoBar* self, const char* text, const char* stock_id, gint response_id) {
+void tab_info_bar_add_stock_button_with_text (TabInfoBar* self, const gchar* text, const gchar* stock_id, gint response_id) {
+	GtkWidget* _tmp0_ = NULL;
+	GtkButton* _tmp1_;
 	GtkButton* button;
+	GtkImage* _tmp2_ = NULL;
 	GtkImage* image;
 	g_return_if_fail (self != NULL);
 	g_return_if_fail (text != NULL);
 	g_return_if_fail (stock_id != NULL);
-	button = _g_object_ref0 (GTK_BUTTON (gtk_info_bar_add_button ((GtkInfoBar*) self, text, response_id)));
-	image = g_object_ref_sink ((GtkImage*) gtk_image_new_from_stock (stock_id, GTK_ICON_SIZE_BUTTON));
+	_tmp0_ = gtk_info_bar_add_button ((GtkInfoBar*) self, text, response_id);
+	_tmp1_ = _g_object_ref0 (GTK_BUTTON (_tmp0_));
+	button = _tmp1_;
+	_tmp2_ = (GtkImage*) gtk_image_new_from_stock (stock_id, GTK_ICON_SIZE_BUTTON);
+	image = g_object_ref_sink (_tmp2_);
 	gtk_button_set_image (button, (GtkWidget*) image);
 	_g_object_unref0 (image);
 	_g_object_unref0 (button);
@@ -206,4 +249,3 @@ GType tab_info_bar_get_type (void) {
 
 
 
-
diff --git a/src/C/templates.c b/src/C/templates.c
index 16c147d..962ba76 100644
--- a/src/C/templates.c
+++ b/src/C/templates.c
@@ -1,4 +1,4 @@
-/* templates.c generated by valac 0.10.3, the Vala compiler
+/* templates.c generated by valac 0.12.1, the Vala compiler
  * generated from templates.vala, do not modify */
 
 /*
@@ -61,7 +61,9 @@ typedef struct _TemplatesPrivate TemplatesPrivate;
 
 typedef struct _MainWindow MainWindow;
 typedef struct _MainWindowClass MainWindowClass;
-#define __g_list_free_gtk_tree_path_free0(var) ((var == NULL) ? NULL : (var = (_g_list_free_gtk_tree_path_free (var), NULL)))
+typedef struct _Block8Data Block8Data;
+#define __g_list_free__gtk_tree_path_free0_0(var) ((var == NULL) ? NULL : (var = (_g_list_free__gtk_tree_path_free0_ (var), NULL)))
+#define _gtk_tree_path_free0(var) ((var == NULL) ? NULL : (var = (gtk_tree_path_free (var), NULL)))
 
 #define TYPE_DOCUMENT_TAB (document_tab_get_type ())
 #define DOCUMENT_TAB(obj) (G_TYPE_CHECK_INSTANCE_CAST ((obj), TYPE_DOCUMENT_TAB, DocumentTab))
@@ -82,8 +84,6 @@ typedef struct _DocumentTabClass DocumentTabClass;
 
 typedef struct _Document Document;
 typedef struct _DocumentClass DocumentClass;
-#define _gtk_tree_path_free0(var) ((var == NULL) ? NULL : (var = (gtk_tree_path_free (var), NULL)))
-typedef struct _Block8Data Block8Data;
 
 struct _Templates {
 	GObject parent_instance;
@@ -98,8 +98,8 @@ struct _TemplatesPrivate {
 	GtkListStore* default_store;
 	GtkListStore* personal_store;
 	gint nb_personal_templates;
-	char* rc_file;
-	char* rc_dir;
+	gchar* rc_file;
+	gchar* rc_dir;
 };
 
 typedef enum  {
@@ -113,14 +113,17 @@ typedef enum  {
 struct _Block8Data {
 	int _ref_count_;
 	Templates * self;
+	GtkDialog* dialog;
+	GtkVPaned* vpaned;
 	GtkIconView* icon_view_default_templates;
 	GtkIconView* icon_view_personal_templates;
+	MainWindow* parent;
 };
 
 
+static gpointer templates_parent_class = NULL;
 static Templates* templates_templates;
 static Templates* templates_templates = NULL;
-static gpointer templates_parent_class = NULL;
 
 GType templates_get_type (void) G_GNUC_CONST;
 #define TEMPLATES_GET_PRIVATE(o) (G_TYPE_INSTANCE_GET_PRIVATE ((o), TYPE_TEMPLATES, TemplatesPrivate))
@@ -130,31 +133,38 @@ enum  {
 static GType templates_template_column_get_type (void) G_GNUC_UNUSED;
 static Templates* templates_new (void);
 static Templates* templates_construct (GType object_type);
-static void templates_add_template_from_string (Templates* self, GtkListStore* store, const char* name, const char* icon_id, const char* contents);
-static void templates_add_template_from_file (Templates* self, GtkListStore* store, const char* name, const char* icon_id, GFile* file);
+static void templates_add_template_from_string (Templates* self, GtkListStore* store, const gchar* name, const gchar* icon_id, const gchar* contents);
+static void templates_add_template_from_file (Templates* self, GtkListStore* store, const gchar* name, const gchar* icon_id, GFile* file);
 Templates* templates_get_default (void);
 GType main_window_get_type (void) G_GNUC_CONST;
 void templates_show_dialog_new (Templates* self, MainWindow* parent);
+static Block8Data* block8_data_ref (Block8Data* _data8_);
+static void block8_data_unref (Block8Data* _data8_);
 static GtkIconView* templates_create_icon_view (Templates* self, GtkListStore* store);
-static GtkWidget* templates_get_dialog_component (Templates* self, const char* title, GtkWidget* widget);
-static void _lambda59_ (Block8Data* _data8_);
-static void templates_on_icon_view_selection_changed (Templates* self, GtkIconView* icon_view, GtkIconView* other_icon_view);
-static void __lambda59__gtk_icon_view_selection_changed (GtkIconView* _sender, gpointer self);
+static GtkWidget* templates_get_dialog_component (Templates* self, const gchar* title, GtkWidget* widget);
 static void _lambda60_ (Block8Data* _data8_);
+static void templates_on_icon_view_selection_changed (Templates* self, GtkIconView* icon_view, GtkIconView* other_icon_view);
 static void __lambda60__gtk_icon_view_selection_changed (GtkIconView* _sender, gpointer self);
-static void _g_list_free_gtk_tree_path_free (GList* self);
+static void _lambda61_ (Block8Data* _data8_);
+static void __lambda61__gtk_icon_view_selection_changed (GtkIconView* _sender, gpointer self);
+static void _lambda62_ (GtkTreePath* path, Block8Data* _data8_);
+static void templates_open_template (Templates* self, MainWindow* main_window, GtkTreeModel* model, GtkTreePath* path);
+static void templates_close_dialog_new (Templates* self, GtkDialog* dialog, GtkVPaned* vpaned);
+static void __lambda62__gtk_icon_view_item_activated (GtkIconView* _sender, GtkTreePath* path, gpointer self);
+static void _lambda63_ (GtkTreePath* path, Block8Data* _data8_);
+static void __lambda63__gtk_icon_view_item_activated (GtkIconView* _sender, GtkTreePath* path, gpointer self);
+static void _gtk_tree_path_free0_ (gpointer var);
+static void _g_list_free__gtk_tree_path_free0_ (GList* self);
 GType document_tab_get_type (void) G_GNUC_CONST;
 DocumentTab* main_window_create_tab (MainWindow* self, gboolean jump_to);
 GType document_get_type (void) G_GNUC_CONST;
 Document* document_tab_get_document (DocumentTab* self);
-void document_set_contents (Document* self, const char* contents);
-static Block8Data* block8_data_ref (Block8Data* _data8_);
-static void block8_data_unref (Block8Data* _data8_);
+void document_set_contents (Document* self, const gchar* contents);
 GtkWidget* utils_add_scrollbar (GtkWidget* child);
 void templates_show_dialog_create (Templates* self, MainWindow* parent);
 DocumentTab* main_window_get_active_tab (MainWindow* self);
 Document* main_window_get_active_document (MainWindow* self);
-static void templates_add_personal_template (Templates* self, const char* contents);
+static void templates_add_personal_template (Templates* self, const gchar* contents);
 void templates_show_dialog_delete (Templates* self, MainWindow* parent);
 static void templates_save_rc_file (Templates* self);
 static void templates_save_contents (Templates* self);
@@ -163,7 +173,6 @@ static void _vala_array_destroy (gpointer array, gint array_length, GDestroyNoti
 static void _vala_array_free (gpointer array, gint array_length, GDestroyNotify destroy_func);
 
 
-
 static GType templates_template_column_get_type (void) {
 	static volatile gsize templates_template_column_type_id__volatile = 0;
 	if (g_once_init_enter (&templates_template_column_type_id__volatile)) {
@@ -178,120 +187,204 @@ static GType templates_template_column_get_type (void) {
 
 static Templates* templates_construct (GType object_type) {
 	Templates * self = NULL;
-	GtkListStore* _tmp0_;
-	char* _tmp1_;
-	GFile* _tmp2_;
-	char* _tmp3_;
-	GFile* _tmp4_;
-	char* _tmp5_;
-	GFile* _tmp6_;
-	char* _tmp7_;
-	GFile* _tmp8_;
-	char* _tmp9_;
-	GFile* _tmp10_;
-	GtkListStore* _tmp11_;
-	char* _tmp12_;
-	char* _tmp13_;
-	GFile* _tmp14_;
-	gboolean _tmp15_;
+	GtkListStore* _tmp0_ = NULL;
+	const gchar* _tmp1_ = NULL;
+	const gchar* _tmp2_ = NULL;
+	const gchar* _tmp3_ = NULL;
+	gchar* _tmp4_;
+	gchar* _tmp5_;
+	GFile* _tmp6_ = NULL;
+	GFile* _tmp7_;
+	const gchar* _tmp8_ = NULL;
+	const gchar* _tmp9_ = NULL;
+	gchar* _tmp10_;
+	gchar* _tmp11_;
+	GFile* _tmp12_ = NULL;
+	GFile* _tmp13_;
+	const gchar* _tmp14_ = NULL;
+	const gchar* _tmp15_ = NULL;
+	gchar* _tmp16_;
+	gchar* _tmp17_;
+	GFile* _tmp18_ = NULL;
+	GFile* _tmp19_;
+	const gchar* _tmp20_ = NULL;
+	const gchar* _tmp21_ = NULL;
+	gchar* _tmp22_;
+	gchar* _tmp23_;
+	GFile* _tmp24_ = NULL;
+	GFile* _tmp25_;
+	const gchar* _tmp26_ = NULL;
+	const gchar* _tmp27_ = NULL;
+	gchar* _tmp28_;
+	gchar* _tmp29_;
+	GFile* _tmp30_ = NULL;
+	GFile* _tmp31_;
+	GtkListStore* _tmp32_ = NULL;
+	const gchar* _tmp33_ = NULL;
+	gchar* _tmp34_ = NULL;
+	const gchar* _tmp35_ = NULL;
+	gchar* _tmp36_ = NULL;
+	GFile* _tmp37_ = NULL;
+	GFile* _tmp38_;
+	gboolean _tmp39_;
+	gboolean _tmp40_;
+	GKeyFile* _tmp41_ = NULL;
+	GKeyFile* key_file;
+	gsize _tmp42_;
+	gchar** _tmp43_ = NULL;
+	gchar** names;
+	gint names_length1;
+	gint _names_size_;
+	gsize _tmp44_;
+	gchar** _tmp45_ = NULL;
+	gchar** icons;
+	gint icons_length1;
+	gint _icons_size_;
 	GError * _inner_error_ = NULL;
 	self = (Templates*) g_object_new (object_type, NULL);
-	self->priv->default_store = (_tmp0_ = gtk_list_store_new ((gint) TEMPLATES_TEMPLATE_COLUMN_N_COLUMNS, GDK_TYPE_PIXBUF, G_TYPE_STRING, G_TYPE_STRING, G_TYPE_STRING), _g_object_unref0 (self->priv->default_store), _tmp0_);
-	templates_add_template_from_string (self, self->priv->default_store, _ ("Empty"), "empty", "");
-	templates_add_template_from_file (self, self->priv->default_store, _ ("Article"), "article", _tmp2_ = g_file_new_for_path (_tmp1_ = g_strconcat (DATA_DIR "/templates/", _ ("article-en.tex"), NULL)));
-	_g_object_unref0 (_tmp2_);
-	_g_free0 (_tmp1_);
-	templates_add_template_from_file (self, self->priv->default_store, _ ("Report"), "report", _tmp4_ = g_file_new_for_path (_tmp3_ = g_strconcat (DATA_DIR "/templates/", _ ("report-en.tex"), NULL)));
-	_g_object_unref0 (_tmp4_);
-	_g_free0 (_tmp3_);
-	templates_add_template_from_file (self, self->priv->default_store, _ ("Book"), "book", _tmp6_ = g_file_new_for_path (_tmp5_ = g_strconcat (DATA_DIR "/templates/", _ ("book-en.tex"), NULL)));
-	_g_object_unref0 (_tmp6_);
+	_tmp0_ = gtk_list_store_new ((gint) TEMPLATES_TEMPLATE_COLUMN_N_COLUMNS, GDK_TYPE_PIXBUF, G_TYPE_STRING, G_TYPE_STRING, G_TYPE_STRING);
+	_g_object_unref0 (self->priv->default_store);
+	self->priv->default_store = _tmp0_;
+	_tmp1_ = _ ("Empty");
+	templates_add_template_from_string (self, self->priv->default_store, _tmp1_, "empty", "");
+	_tmp2_ = _ ("Article");
+	_tmp3_ = _ ("article-en.tex");
+	_tmp4_ = g_strconcat (DATA_DIR "/templates/", _tmp3_, NULL);
+	_tmp5_ = _tmp4_;
+	_tmp6_ = g_file_new_for_path (_tmp5_);
+	_tmp7_ = _tmp6_;
+	templates_add_template_from_file (self, self->priv->default_store, _tmp2_, "article", _tmp7_);
+	_g_object_unref0 (_tmp7_);
 	_g_free0 (_tmp5_);
-	templates_add_template_from_file (self, self->priv->default_store, _ ("Letter"), "letter", _tmp8_ = g_file_new_for_path (_tmp7_ = g_strconcat (DATA_DIR "/templates/", _ ("letter-en.tex"), NULL)));
-	_g_object_unref0 (_tmp8_);
-	_g_free0 (_tmp7_);
-	templates_add_template_from_file (self, self->priv->default_store, _ ("Presentation"), "beamer", _tmp10_ = g_file_new_for_path (_tmp9_ = g_strconcat (DATA_DIR "/templates/", _ ("beamer-en.tex"), NULL)));
-	_g_object_unref0 (_tmp10_);
-	_g_free0 (_tmp9_);
-	self->priv->personal_store = (_tmp11_ = gtk_list_store_new ((gint) TEMPLATES_TEMPLATE_COLUMN_N_COLUMNS, GDK_TYPE_PIXBUF, G_TYPE_STRING, G_TYPE_STRING, G_TYPE_STRING), _g_object_unref0 (self->priv->personal_store), _tmp11_);
+	_tmp8_ = _ ("Report");
+	_tmp9_ = _ ("report-en.tex");
+	_tmp10_ = g_strconcat (DATA_DIR "/templates/", _tmp9_, NULL);
+	_tmp11_ = _tmp10_;
+	_tmp12_ = g_file_new_for_path (_tmp11_);
+	_tmp13_ = _tmp12_;
+	templates_add_template_from_file (self, self->priv->default_store, _tmp8_, "report", _tmp13_);
+	_g_object_unref0 (_tmp13_);
+	_g_free0 (_tmp11_);
+	_tmp14_ = _ ("Book");
+	_tmp15_ = _ ("book-en.tex");
+	_tmp16_ = g_strconcat (DATA_DIR "/templates/", _tmp15_, NULL);
+	_tmp17_ = _tmp16_;
+	_tmp18_ = g_file_new_for_path (_tmp17_);
+	_tmp19_ = _tmp18_;
+	templates_add_template_from_file (self, self->priv->default_store, _tmp14_, "book", _tmp19_);
+	_g_object_unref0 (_tmp19_);
+	_g_free0 (_tmp17_);
+	_tmp20_ = _ ("Letter");
+	_tmp21_ = _ ("letter-en.tex");
+	_tmp22_ = g_strconcat (DATA_DIR "/templates/", _tmp21_, NULL);
+	_tmp23_ = _tmp22_;
+	_tmp24_ = g_file_new_for_path (_tmp23_);
+	_tmp25_ = _tmp24_;
+	templates_add_template_from_file (self, self->priv->default_store, _tmp20_, "letter", _tmp25_);
+	_g_object_unref0 (_tmp25_);
+	_g_free0 (_tmp23_);
+	_tmp26_ = _ ("Presentation");
+	_tmp27_ = _ ("beamer-en.tex");
+	_tmp28_ = g_strconcat (DATA_DIR "/templates/", _tmp27_, NULL);
+	_tmp29_ = _tmp28_;
+	_tmp30_ = g_file_new_for_path (_tmp29_);
+	_tmp31_ = _tmp30_;
+	templates_add_template_from_file (self, self->priv->default_store, _tmp26_, "beamer", _tmp31_);
+	_g_object_unref0 (_tmp31_);
+	_g_free0 (_tmp29_);
+	_tmp32_ = gtk_list_store_new ((gint) TEMPLATES_TEMPLATE_COLUMN_N_COLUMNS, GDK_TYPE_PIXBUF, G_TYPE_STRING, G_TYPE_STRING, G_TYPE_STRING);
+	_g_object_unref0 (self->priv->personal_store);
+	self->priv->personal_store = _tmp32_;
 	self->priv->nb_personal_templates = 0;
-	self->priv->rc_file = (_tmp12_ = g_build_filename (g_get_user_data_dir (), "latexila", "templatesrc", NULL, NULL), _g_free0 (self->priv->rc_file), _tmp12_);
-	self->priv->rc_dir = (_tmp13_ = g_build_filename (g_get_user_data_dir (), "latexila", NULL, NULL), _g_free0 (self->priv->rc_dir), _tmp13_);
-	if ((_tmp15_ = !g_file_query_exists (_tmp14_ = g_file_new_for_path (self->priv->rc_file), NULL), _g_object_unref0 (_tmp14_), _tmp15_)) {
+	_tmp33_ = g_get_user_data_dir ();
+	_tmp34_ = g_build_filename (_tmp33_, "latexila", "templatesrc", NULL, NULL);
+	_g_free0 (self->priv->rc_file);
+	self->priv->rc_file = _tmp34_;
+	_tmp35_ = g_get_user_data_dir ();
+	_tmp36_ = g_build_filename (_tmp35_, "latexila", NULL, NULL);
+	_g_free0 (self->priv->rc_dir);
+	self->priv->rc_dir = _tmp36_;
+	_tmp37_ = g_file_new_for_path (self->priv->rc_file);
+	_tmp38_ = _tmp37_;
+	_tmp39_ = g_file_query_exists (_tmp38_, NULL);
+	_tmp40_ = !_tmp39_;
+	_g_object_unref0 (_tmp38_);
+	if (_tmp40_) {
 		return self;
 	}
+	_tmp41_ = g_key_file_new ();
+	key_file = _tmp41_;
+	g_key_file_load_from_file (key_file, self->priv->rc_file, G_KEY_FILE_NONE, &_inner_error_);
+	if (_inner_error_ != NULL) {
+		_g_key_file_free0 (key_file);
+		goto __catch7_g_error;
+	}
+	_tmp43_ = g_key_file_get_string_list (key_file, APP_NAME, "names", &_tmp42_, &_inner_error_);
+	names = _tmp43_;
+	names_length1 = _tmp42_;
+	_names_size_ = _tmp42_;
+	if (_inner_error_ != NULL) {
+		_g_key_file_free0 (key_file);
+		goto __catch7_g_error;
+	}
+	_tmp45_ = g_key_file_get_string_list (key_file, APP_NAME, "icons", &_tmp44_, &_inner_error_);
+	icons = _tmp45_;
+	icons_length1 = _tmp44_;
+	_icons_size_ = _tmp44_;
+	if (_inner_error_ != NULL) {
+		names = (_vala_array_free (names, names_length1, (GDestroyNotify) g_free), NULL);
+		_g_key_file_free0 (key_file);
+		goto __catch7_g_error;
+	}
+	self->priv->nb_personal_templates = names_length1;
 	{
-		GKeyFile* key_file;
-		gint names_length1;
-		gint _names_size_;
-		char** _tmp17_;
-		gsize _tmp16_;
-		char** names;
-		gint icons_length1;
-		gint _icons_size_;
-		char** _tmp19_;
-		gsize _tmp18_;
-		char** icons;
-		key_file = g_key_file_new ();
-		g_key_file_load_from_file (key_file, self->priv->rc_file, G_KEY_FILE_NONE, &_inner_error_);
-		if (_inner_error_ != NULL) {
-			_g_key_file_free0 (key_file);
-			goto __catch7_g_error;
-		}
-		names = (_tmp17_ = g_key_file_get_string_list (key_file, APP_NAME, "names", &_tmp16_, &_inner_error_), names_length1 = _tmp16_, _names_size_ = names_length1, _tmp17_);
-		if (_inner_error_ != NULL) {
-			_g_key_file_free0 (key_file);
-			goto __catch7_g_error;
-		}
-		icons = (_tmp19_ = g_key_file_get_string_list (key_file, APP_NAME, "icons", &_tmp18_, &_inner_error_), icons_length1 = _tmp18_, _icons_size_ = icons_length1, _tmp19_);
-		if (_inner_error_ != NULL) {
-			names = (_vala_array_free (names, names_length1, (GDestroyNotify) g_free), NULL);
-			_g_key_file_free0 (key_file);
-			goto __catch7_g_error;
-		}
-		self->priv->nb_personal_templates = names_length1;
+		gint i;
+		i = 0;
 		{
-			gint i;
-			i = 0;
-			{
-				gboolean _tmp20_;
-				_tmp20_ = TRUE;
-				while (TRUE) {
-					char* _tmp21_;
-					GFile* _tmp22_;
-					GFile* file;
-					if (!_tmp20_) {
-						i++;
-					}
-					_tmp20_ = FALSE;
-					if (!(i < self->priv->nb_personal_templates)) {
-						break;
-					}
-					file = (_tmp22_ = g_file_new_for_path (_tmp21_ = g_strdup_printf ("%s/%d.tex", self->priv->rc_dir, i)), _g_free0 (_tmp21_), _tmp22_);
-					if (!g_file_query_exists (file, NULL)) {
-						_g_object_unref0 (file);
-						continue;
-					}
-					templates_add_template_from_file (self, self->priv->personal_store, names[i], icons[i], file);
+			gboolean _tmp46_;
+			_tmp46_ = TRUE;
+			while (TRUE) {
+				gchar* _tmp47_ = NULL;
+				gchar* _tmp48_;
+				GFile* _tmp49_ = NULL;
+				GFile* _tmp50_;
+				GFile* file;
+				gboolean _tmp51_;
+				if (!_tmp46_) {
+					i++;
+				}
+				_tmp46_ = FALSE;
+				if (!(i < self->priv->nb_personal_templates)) {
+					break;
+				}
+				_tmp47_ = g_strdup_printf ("%s/%d.tex", self->priv->rc_dir, i);
+				_tmp48_ = _tmp47_;
+				_tmp49_ = g_file_new_for_path (_tmp48_);
+				_tmp50_ = _tmp49_;
+				_g_free0 (_tmp48_);
+				file = _tmp50_;
+				_tmp51_ = g_file_query_exists (file, NULL);
+				if (!_tmp51_) {
 					_g_object_unref0 (file);
+					continue;
 				}
+				templates_add_template_from_file (self, self->priv->personal_store, names[i], icons[i], file);
+				_g_object_unref0 (file);
 			}
 		}
-		icons = (_vala_array_free (icons, icons_length1, (GDestroyNotify) g_free), NULL);
-		names = (_vala_array_free (names, names_length1, (GDestroyNotify) g_free), NULL);
-		_g_key_file_free0 (key_file);
 	}
+	icons = (_vala_array_free (icons, icons_length1, (GDestroyNotify) g_free), NULL);
+	names = (_vala_array_free (names, names_length1, (GDestroyNotify) g_free), NULL);
+	_g_key_file_free0 (key_file);
 	goto __finally7;
 	__catch7_g_error:
 	{
 		GError * e;
 		e = _inner_error_;
 		_inner_error_ = NULL;
-		{
-			fprintf (stderr, "Warning: load templates failed: %s\n", e->message);
-			_g_error_free0 (e);
-			return self;
-		}
+		fprintf (stderr, "Warning: load templates failed: %s\n", e->message);
+		_g_error_free0 (e);
+		return self;
 	}
 	__finally7:
 	if (_inner_error_ != NULL) {
@@ -315,170 +408,305 @@ static gpointer _g_object_ref0 (gpointer self) {
 
 Templates* templates_get_default (void) {
 	Templates* result = NULL;
+	Templates* _tmp1_;
 	if (templates_templates == NULL) {
-		Templates* _tmp0_;
-		templates_templates = (_tmp0_ = templates_new (), _g_object_unref0 (templates_templates), _tmp0_);
+		Templates* _tmp0_ = NULL;
+		_tmp0_ = templates_new ();
+		_g_object_unref0 (templates_templates);
+		templates_templates = _tmp0_;
 	}
-	result = _g_object_ref0 (templates_templates);
+	_tmp1_ = _g_object_ref0 (templates_templates);
+	result = _tmp1_;
 	return result;
 }
 
 
-static void _lambda59_ (Block8Data* _data8_) {
+static Block8Data* block8_data_ref (Block8Data* _data8_) {
+	g_atomic_int_inc (&_data8_->_ref_count_);
+	return _data8_;
+}
+
+
+static void block8_data_unref (Block8Data* _data8_) {
+	if (g_atomic_int_dec_and_test (&_data8_->_ref_count_)) {
+		_g_object_unref0 (_data8_->self);
+		_g_object_unref0 (_data8_->icon_view_personal_templates);
+		_g_object_unref0 (_data8_->icon_view_default_templates);
+		_g_object_unref0 (_data8_->vpaned);
+		_g_object_unref0 (_data8_->dialog);
+		_g_object_unref0 (_data8_->parent);
+		g_slice_free (Block8Data, _data8_);
+	}
+}
+
+
+static void _lambda60_ (Block8Data* _data8_) {
 	Templates * self;
 	self = _data8_->self;
 	templates_on_icon_view_selection_changed (self, _data8_->icon_view_default_templates, _data8_->icon_view_personal_templates);
 }
 
 
-static void __lambda59__gtk_icon_view_selection_changed (GtkIconView* _sender, gpointer self) {
-	_lambda59_ (self);
+static void __lambda60__gtk_icon_view_selection_changed (GtkIconView* _sender, gpointer self) {
+	_lambda60_ (self);
 }
 
 
-static void _lambda60_ (Block8Data* _data8_) {
+static void _lambda61_ (Block8Data* _data8_) {
 	Templates * self;
 	self = _data8_->self;
 	templates_on_icon_view_selection_changed (self, _data8_->icon_view_personal_templates, _data8_->icon_view_default_templates);
 }
 
 
-static void __lambda60__gtk_icon_view_selection_changed (GtkIconView* _sender, gpointer self) {
-	_lambda60_ (self);
+static void __lambda61__gtk_icon_view_selection_changed (GtkIconView* _sender, gpointer self) {
+	_lambda61_ (self);
 }
 
 
-static void _g_list_free_gtk_tree_path_free (GList* self) {
-	g_list_foreach (self, (GFunc) gtk_tree_path_free, NULL);
-	g_list_free (self);
+static void _lambda62_ (GtkTreePath* path, Block8Data* _data8_) {
+	Templates * self;
+	self = _data8_->self;
+	g_return_if_fail (path != NULL);
+	templates_open_template (self, _data8_->parent, (GtkTreeModel*) self->priv->default_store, path);
+	templates_close_dialog_new (self, _data8_->dialog, _data8_->vpaned);
 }
 
 
-static gpointer _gtk_tree_path_copy0 (gpointer self) {
-	return self ? gtk_tree_path_copy (self) : NULL;
+static void __lambda62__gtk_icon_view_item_activated (GtkIconView* _sender, GtkTreePath* path, gpointer self) {
+	_lambda62_ (path, self);
 }
 
 
-static Block8Data* block8_data_ref (Block8Data* _data8_) {
-	g_atomic_int_inc (&_data8_->_ref_count_);
-	return _data8_;
+static void _lambda63_ (GtkTreePath* path, Block8Data* _data8_) {
+	Templates * self;
+	self = _data8_->self;
+	g_return_if_fail (path != NULL);
+	templates_open_template (self, _data8_->parent, (GtkTreeModel*) self->priv->personal_store, path);
+	templates_close_dialog_new (self, _data8_->dialog, _data8_->vpaned);
 }
 
 
-static void block8_data_unref (Block8Data* _data8_) {
-	if (g_atomic_int_dec_and_test (&_data8_->_ref_count_)) {
-		_g_object_unref0 (_data8_->self);
-		_g_object_unref0 (_data8_->icon_view_personal_templates);
-		_g_object_unref0 (_data8_->icon_view_default_templates);
-		g_slice_free (Block8Data, _data8_);
-	}
+static void __lambda63__gtk_icon_view_item_activated (GtkIconView* _sender, GtkTreePath* path, gpointer self) {
+	_lambda63_ (path, self);
+}
+
+
+static void _gtk_tree_path_free0_ (gpointer var) {
+	(var == NULL) ? NULL : (var = (gtk_tree_path_free (var), NULL));
+}
+
+
+static void _g_list_free__gtk_tree_path_free0_ (GList* self) {
+	g_list_foreach (self, (GFunc) _gtk_tree_path_free0_, NULL);
+	g_list_free (self);
+}
+
+
+static gpointer _gtk_tree_path_copy0 (gpointer self) {
+	return self ? gtk_tree_path_copy (self) : NULL;
 }
 
 
 void templates_show_dialog_new (Templates* self, MainWindow* parent) {
 	Block8Data* _data8_;
-	GtkDialog* dialog;
+	const gchar* _tmp0_ = NULL;
+	GtkDialog* _tmp1_ = NULL;
+	GSettings* _tmp2_ = NULL;
 	GSettings* settings;
 	gint w = 0;
 	gint h = 0;
+	GtkWidget* _tmp3_ = NULL;
+	GtkBox* _tmp4_;
 	GtkBox* content_area;
-	GtkVPaned* vpaned;
+	GtkVPaned* _tmp5_ = NULL;
+	gint _tmp6_;
+	GtkIconView* _tmp7_ = NULL;
+	const gchar* _tmp8_ = NULL;
+	GtkWidget* _tmp9_ = NULL;
 	GtkWidget* component;
-	GtkWidget* _tmp0_;
+	GtkIconView* _tmp10_ = NULL;
+	const gchar* _tmp11_ = NULL;
+	GtkWidget* _tmp12_ = NULL;
+	gint _tmp13_;
 	g_return_if_fail (self != NULL);
 	g_return_if_fail (parent != NULL);
 	_data8_ = g_slice_new0 (Block8Data);
 	_data8_->_ref_count_ = 1;
 	_data8_->self = g_object_ref (self);
-	dialog = g_object_ref_sink ((GtkDialog*) gtk_dialog_new_with_buttons (_ ("New File..."), (GtkWindow*) parent, GTK_DIALOG_NO_SEPARATOR, GTK_STOCK_OK, GTK_RESPONSE_ACCEPT, GTK_STOCK_CANCEL, GTK_RESPONSE_REJECT, NULL, NULL));
-	settings = g_settings_new ("org.gnome.latexila.state.window");
+	_data8_->parent = _g_object_ref0 (parent);
+	_tmp0_ = _ ("New File...");
+	_tmp1_ = (GtkDialog*) gtk_dialog_new_with_buttons (_tmp0_, (GtkWindow*) _data8_->parent, GTK_DIALOG_NO_SEPARATOR, GTK_STOCK_OK, GTK_RESPONSE_ACCEPT, GTK_STOCK_CANCEL, GTK_RESPONSE_REJECT, NULL, NULL);
+	_data8_->dialog = g_object_ref_sink (_tmp1_);
+	_tmp2_ = g_settings_new ("org.gnome.latexila.state.window");
+	settings = _tmp2_;
 	g_settings_get (settings, "new-file-dialog-size", "(ii)", &w, &h);
-	gtk_window_set_default_size ((GtkWindow*) dialog, w, h);
-	gtk_widget_set_size_request ((GtkWidget*) dialog, 0, 0);
-	content_area = _g_object_ref0 (GTK_BOX (gtk_dialog_get_content_area (dialog)));
-	vpaned = g_object_ref_sink ((GtkVPaned*) gtk_vpaned_new ());
-	gtk_box_pack_start (content_area, (GtkWidget*) vpaned, TRUE, TRUE, 0);
-	gtk_paned_set_position ((GtkPaned*) vpaned, g_settings_get_int (settings, "new-file-dialog-paned-position"));
-	_data8_->icon_view_default_templates = templates_create_icon_view (self, self->priv->default_store);
-	component = templates_get_dialog_component (self, _ ("Default templates"), (GtkWidget*) _data8_->icon_view_default_templates);
-	gtk_paned_pack1 ((GtkPaned*) vpaned, component, TRUE, TRUE);
-	_data8_->icon_view_personal_templates = templates_create_icon_view (self, self->priv->personal_store);
-	component = (_tmp0_ = templates_get_dialog_component (self, _ ("Your personal templates"), (GtkWidget*) _data8_->icon_view_personal_templates), _g_object_unref0 (component), _tmp0_);
-	gtk_paned_pack2 ((GtkPaned*) vpaned, component, FALSE, TRUE);
+	gtk_window_set_default_size ((GtkWindow*) _data8_->dialog, w, h);
+	gtk_widget_set_size_request ((GtkWidget*) _data8_->dialog, 0, 0);
+	_tmp3_ = gtk_dialog_get_content_area (_data8_->dialog);
+	_tmp4_ = _g_object_ref0 (GTK_BOX (_tmp3_));
+	content_area = _tmp4_;
+	_tmp5_ = (GtkVPaned*) gtk_vpaned_new ();
+	_data8_->vpaned = g_object_ref_sink (_tmp5_);
+	gtk_box_pack_start (content_area, (GtkWidget*) _data8_->vpaned, TRUE, TRUE, (guint) 0);
+	_tmp6_ = g_settings_get_int (settings, "new-file-dialog-paned-position");
+	gtk_paned_set_position ((GtkPaned*) _data8_->vpaned, _tmp6_);
+	_tmp7_ = templates_create_icon_view (self, self->priv->default_store);
+	_data8_->icon_view_default_templates = _tmp7_;
+	_tmp8_ = _ ("Default templates");
+	_tmp9_ = templates_get_dialog_component (self, _tmp8_, (GtkWidget*) _data8_->icon_view_default_templates);
+	component = _tmp9_;
+	gtk_paned_pack1 ((GtkPaned*) _data8_->vpaned, component, TRUE, TRUE);
+	_tmp10_ = templates_create_icon_view (self, self->priv->personal_store);
+	_data8_->icon_view_personal_templates = _tmp10_;
+	_tmp11_ = _ ("Your personal templates");
+	_tmp12_ = templates_get_dialog_component (self, _tmp11_, (GtkWidget*) _data8_->icon_view_personal_templates);
+	_g_object_unref0 (component);
+	component = _tmp12_;
+	gtk_paned_pack2 ((GtkPaned*) _data8_->vpaned, component, FALSE, TRUE);
 	gtk_widget_show_all ((GtkWidget*) content_area);
-	g_signal_connect_data (_data8_->icon_view_default_templates, "selection-changed", (GCallback) __lambda59__gtk_icon_view_selection_changed, block8_data_ref (_data8_), (GClosureNotify) block8_data_unref, 0);
-	g_signal_connect_data (_data8_->icon_view_personal_templates, "selection-changed", (GCallback) __lambda60__gtk_icon_view_selection_changed, block8_data_ref (_data8_), (GClosureNotify) block8_data_unref, 0);
-	if (gtk_dialog_run (dialog) == GTK_RESPONSE_ACCEPT) {
+	g_signal_connect_data (_data8_->icon_view_default_templates, "selection-changed", (GCallback) __lambda60__gtk_icon_view_selection_changed, block8_data_ref (_data8_), (GClosureNotify) block8_data_unref, 0);
+	g_signal_connect_data (_data8_->icon_view_personal_templates, "selection-changed", (GCallback) __lambda61__gtk_icon_view_selection_changed, block8_data_ref (_data8_), (GClosureNotify) block8_data_unref, 0);
+	g_signal_connect_data (_data8_->icon_view_default_templates, "item-activated", (GCallback) __lambda62__gtk_icon_view_item_activated, block8_data_ref (_data8_), (GClosureNotify) block8_data_unref, 0);
+	g_signal_connect_data (_data8_->icon_view_personal_templates, "item-activated", (GCallback) __lambda63__gtk_icon_view_item_activated, block8_data_ref (_data8_), (GClosureNotify) block8_data_unref, 0);
+	_tmp13_ = gtk_dialog_run (_data8_->dialog);
+	if (_tmp13_ == GTK_RESPONSE_ACCEPT) {
+		GList* _tmp14_ = NULL;
 		GList* selected_items;
+		GtkTreeModel* _tmp15_;
 		GtkTreeModel* model;
+		guint _tmp16_;
+		gconstpointer _tmp19_ = NULL;
+		GtkTreePath* _tmp20_;
 		GtkTreePath* path;
-		GtkTreeIter _tmp3_ = {0};
-		GtkTreeIter iter;
-		char* contents;
-		gboolean _tmp4_ = FALSE;
-		DocumentTab* tab;
-		selected_items = gtk_icon_view_get_selected_items (_data8_->icon_view_default_templates);
-		model = _g_object_ref0 (GTK_TREE_MODEL (self->priv->default_store));
-		if (g_list_length (selected_items) == 0) {
-			GList* _tmp1_;
-			GtkTreeModel* _tmp2_;
-			selected_items = (_tmp1_ = gtk_icon_view_get_selected_items (_data8_->icon_view_personal_templates), __g_list_free_gtk_tree_path_free0 (selected_items), _tmp1_);
-			model = (_tmp2_ = _g_object_ref0 (GTK_TREE_MODEL (self->priv->personal_store)), _g_object_unref0 (model), _tmp2_);
-		}
-		path = _gtk_tree_path_copy0 ((GtkTreePath*) ((GtkTreePath*) g_list_nth_data (selected_items, (guint) 0)));
-		iter = (_tmp3_);
-		contents = g_strdup ("");
-		if (path != NULL) {
-			_tmp4_ = gtk_tree_model_get_iter (model, &iter, path);
-		} else {
-			_tmp4_ = FALSE;
-		}
-		if (_tmp4_) {
-			gtk_tree_model_get (model, &iter, TEMPLATES_TEMPLATE_COLUMN_CONTENTS, &contents, -1, -1);
+		_tmp14_ = gtk_icon_view_get_selected_items (_data8_->icon_view_default_templates);
+		selected_items = _tmp14_;
+		_tmp15_ = _g_object_ref0 (GTK_TREE_MODEL (self->priv->default_store));
+		model = _tmp15_;
+		_tmp16_ = g_list_length (selected_items);
+		if (_tmp16_ == 0) {
+			GList* _tmp17_ = NULL;
+			GtkTreeModel* _tmp18_;
+			_tmp17_ = gtk_icon_view_get_selected_items (_data8_->icon_view_personal_templates);
+			__g_list_free__gtk_tree_path_free0_0 (selected_items);
+			selected_items = _tmp17_;
+			_tmp18_ = _g_object_ref0 (GTK_TREE_MODEL (self->priv->personal_store));
+			_g_object_unref0 (model);
+			model = _tmp18_;
 		}
-		tab = main_window_create_tab (parent, TRUE);
-		document_set_contents (document_tab_get_document (tab), contents);
-		_g_object_unref0 (tab);
-		_g_free0 (contents);
+		_tmp19_ = g_list_nth_data (selected_items, (guint) 0);
+		_tmp20_ = _gtk_tree_path_copy0 ((GtkTreePath*) ((GtkTreePath*) _tmp19_));
+		path = _tmp20_;
+		templates_open_template (self, _data8_->parent, model, path);
 		_gtk_tree_path_free0 (path);
 		_g_object_unref0 (model);
-		__g_list_free_gtk_tree_path_free0 (selected_items);
+		__g_list_free__gtk_tree_path_free0_0 (selected_items);
 	}
-	gtk_window_get_size ((GtkWindow*) dialog, &w, &h);
-	g_settings_set (settings, "new-file-dialog-size", "(ii)", w, h);
-	g_settings_set_int (settings, "new-file-dialog-paned-position", gtk_paned_get_position ((GtkPaned*) vpaned));
-	gtk_object_destroy ((GtkObject*) dialog);
+	templates_close_dialog_new (self, _data8_->dialog, _data8_->vpaned);
 	_g_object_unref0 (component);
-	_g_object_unref0 (vpaned);
 	_g_object_unref0 (content_area);
 	_g_object_unref0 (settings);
-	_g_object_unref0 (dialog);
 	block8_data_unref (_data8_);
+	_data8_ = NULL;
 }
 
 
-static GtkWidget* templates_get_dialog_component (Templates* self, const char* title, GtkWidget* widget) {
+static void templates_open_template (Templates* self, MainWindow* main_window, GtkTreeModel* model, GtkTreePath* path) {
+	GtkTreeIter _tmp0_ = {0};
+	GtkTreeIter iter;
+	gchar* _tmp1_;
+	gchar* contents;
+	gboolean _tmp2_ = FALSE;
+	DocumentTab* _tmp5_ = NULL;
+	DocumentTab* tab;
+	Document* _tmp6_ = NULL;
+	g_return_if_fail (self != NULL);
+	g_return_if_fail (main_window != NULL);
+	g_return_if_fail (model != NULL);
+	iter = _tmp0_;
+	_tmp1_ = g_strdup ("");
+	contents = _tmp1_;
+	if (path != NULL) {
+		GtkTreeIter _tmp3_ = {0};
+		gboolean _tmp4_;
+		_tmp4_ = gtk_tree_model_get_iter (model, &_tmp3_, path);
+		iter = _tmp3_;
+		_tmp2_ = _tmp4_;
+	} else {
+		_tmp2_ = FALSE;
+	}
+	if (_tmp2_) {
+		gtk_tree_model_get (model, &iter, TEMPLATES_TEMPLATE_COLUMN_CONTENTS, &contents, -1, -1);
+	}
+	_tmp5_ = main_window_create_tab (main_window, TRUE);
+	tab = _tmp5_;
+	_tmp6_ = document_tab_get_document (tab);
+	document_set_contents (_tmp6_, contents);
+	_g_object_unref0 (tab);
+	_g_free0 (contents);
+}
+
+
+static void templates_close_dialog_new (Templates* self, GtkDialog* dialog, GtkVPaned* vpaned) {
+	gint w = 0;
+	gint h = 0;
+	gint _tmp0_;
+	gint _tmp1_;
+	GSettings* _tmp2_ = NULL;
+	GSettings* settings;
+	gint _tmp3_;
+	g_return_if_fail (self != NULL);
+	g_return_if_fail (dialog != NULL);
+	g_return_if_fail (vpaned != NULL);
+	gtk_window_get_size ((GtkWindow*) dialog, &_tmp0_, &_tmp1_);
+	w = _tmp0_;
+	h = _tmp1_;
+	_tmp2_ = g_settings_new ("org.gnome.latexila.state.window");
+	settings = _tmp2_;
+	g_settings_set (settings, "new-file-dialog-size", "(ii)", w, h);
+	_tmp3_ = gtk_paned_get_position ((GtkPaned*) vpaned);
+	g_settings_set_int (settings, "new-file-dialog-paned-position", _tmp3_);
+	gtk_object_destroy ((GtkObject*) dialog);
+	_g_object_unref0 (settings);
+}
+
+
+static GtkWidget* templates_get_dialog_component (Templates* self, const gchar* title, GtkWidget* widget) {
 	GtkWidget* result = NULL;
+	GtkVBox* _tmp0_ = NULL;
 	GtkVBox* vbox;
+	GtkLabel* _tmp1_ = NULL;
 	GtkLabel* label;
-	char* _tmp0_;
-	char* _tmp1_;
+	gchar* _tmp2_;
+	gchar* _tmp3_;
+	gchar* _tmp4_;
+	gchar* _tmp5_;
+	GtkAlignment* _tmp6_ = NULL;
 	GtkAlignment* alignment;
+	GtkWidget* _tmp7_ = NULL;
 	GtkWidget* scrollbar;
 	g_return_val_if_fail (self != NULL, NULL);
 	g_return_val_if_fail (title != NULL, NULL);
 	g_return_val_if_fail (widget != NULL, NULL);
-	vbox = g_object_ref_sink ((GtkVBox*) gtk_vbox_new (FALSE, 6));
-	label = g_object_ref_sink ((GtkLabel*) gtk_label_new (NULL));
-	gtk_label_set_markup (label, _tmp1_ = g_strconcat (_tmp0_ = g_strconcat ("<b>", title, NULL), "</b>", NULL));
-	_g_free0 (_tmp1_);
-	_g_free0 (_tmp0_);
-	g_object_set ((GtkMisc*) label, "xalign", (float) 0.0, NULL);
-	gtk_box_pack_start ((GtkBox*) vbox, (GtkWidget*) label, FALSE, FALSE, 0);
-	alignment = g_object_ref_sink ((GtkAlignment*) gtk_alignment_new ((float) 0.5, (float) 0.5, (float) 1.0, (float) 1.0));
+	_tmp0_ = (GtkVBox*) gtk_vbox_new (FALSE, 6);
+	vbox = g_object_ref_sink (_tmp0_);
+	_tmp1_ = (GtkLabel*) gtk_label_new (NULL);
+	label = g_object_ref_sink (_tmp1_);
+	_tmp2_ = g_strconcat ("<b>", title, NULL);
+	_tmp3_ = _tmp2_;
+	_tmp4_ = g_strconcat (_tmp3_, "</b>", NULL);
+	_tmp5_ = _tmp4_;
+	gtk_label_set_markup (label, _tmp5_);
+	_g_free0 (_tmp5_);
+	_g_free0 (_tmp3_);
+	g_object_set ((GtkMisc*) label, "xalign", (gfloat) 0.0, NULL);
+	gtk_box_pack_start ((GtkBox*) vbox, (GtkWidget*) label, FALSE, FALSE, (guint) 0);
+	_tmp6_ = (GtkAlignment*) gtk_alignment_new ((gfloat) 0.5, (gfloat) 0.5, (gfloat) 1.0, (gfloat) 1.0);
+	alignment = g_object_ref_sink (_tmp6_);
 	g_object_set (alignment, "left-padding", (guint) 12, NULL);
-	gtk_box_pack_start ((GtkBox*) vbox, (GtkWidget*) alignment, TRUE, TRUE, 0);
-	scrollbar = utils_add_scrollbar (widget);
+	gtk_box_pack_start ((GtkBox*) vbox, (GtkWidget*) alignment, TRUE, TRUE, (guint) 0);
+	_tmp7_ = utils_add_scrollbar (widget);
+	scrollbar = _tmp7_;
 	gtk_container_add ((GtkContainer*) alignment, scrollbar);
 	result = (GtkWidget*) vbox;
 	_g_object_unref0 (scrollbar);
@@ -489,67 +717,120 @@ static GtkWidget* templates_get_dialog_component (Templates* self, const char* t
 
 
 void templates_show_dialog_create (Templates* self, MainWindow* parent) {
+	DocumentTab* _tmp0_ = NULL;
+	const gchar* _tmp1_ = NULL;
+	GtkDialog* _tmp2_ = NULL;
 	GtkDialog* dialog;
+	GtkWidget* _tmp3_ = NULL;
+	GtkBox* _tmp4_;
 	GtkBox* content_area;
+	GtkHBox* _tmp5_ = NULL;
 	GtkHBox* hbox;
+	const gchar* _tmp6_ = NULL;
+	GtkLabel* _tmp7_ = NULL;
 	GtkLabel* label;
+	GtkEntry* _tmp8_ = NULL;
 	GtkEntry* entry;
+	GtkIconView* _tmp9_ = NULL;
 	GtkIconView* icon_view;
+	GtkWidget* _tmp10_ = NULL;
 	GtkWidget* scrollbar;
+	const gchar* _tmp11_ = NULL;
+	GtkFrame* _tmp12_ = NULL;
 	GtkFrame* frame;
 	g_return_if_fail (self != NULL);
 	g_return_if_fail (parent != NULL);
-	g_return_if_fail (main_window_get_active_tab (parent) != NULL);
-	dialog = g_object_ref_sink ((GtkDialog*) gtk_dialog_new_with_buttons (_ ("New Template..."), (GtkWindow*) parent, 0, GTK_STOCK_OK, GTK_RESPONSE_ACCEPT, GTK_STOCK_CANCEL, GTK_RESPONSE_REJECT, NULL, NULL));
+	_tmp0_ = main_window_get_active_tab (parent);
+	g_return_if_fail (_tmp0_ != NULL);
+	_tmp1_ = _ ("New Template...");
+	_tmp2_ = (GtkDialog*) gtk_dialog_new_with_buttons (_tmp1_, (GtkWindow*) parent, 0, GTK_STOCK_OK, GTK_RESPONSE_ACCEPT, GTK_STOCK_CANCEL, GTK_RESPONSE_REJECT, NULL, NULL);
+	dialog = g_object_ref_sink (_tmp2_);
 	gtk_window_set_default_size ((GtkWindow*) dialog, 400, 330);
-	content_area = _g_object_ref0 (GTK_BOX (gtk_dialog_get_content_area (dialog)));
-	hbox = g_object_ref_sink ((GtkHBox*) gtk_hbox_new (FALSE, 5));
-	label = g_object_ref_sink ((GtkLabel*) gtk_label_new (_ ("Name of the new template:")));
-	entry = g_object_ref_sink ((GtkEntry*) gtk_entry_new ());
+	_tmp3_ = gtk_dialog_get_content_area (dialog);
+	_tmp4_ = _g_object_ref0 (GTK_BOX (_tmp3_));
+	content_area = _tmp4_;
+	_tmp5_ = (GtkHBox*) gtk_hbox_new (FALSE, 5);
+	hbox = g_object_ref_sink (_tmp5_);
+	_tmp6_ = _ ("Name of the new template:");
+	_tmp7_ = (GtkLabel*) gtk_label_new (_tmp6_);
+	label = g_object_ref_sink (_tmp7_);
+	_tmp8_ = (GtkEntry*) gtk_entry_new ();
+	entry = g_object_ref_sink (_tmp8_);
 	gtk_box_pack_start ((GtkBox*) hbox, (GtkWidget*) label, FALSE, FALSE, (guint) 0);
 	gtk_box_pack_start ((GtkBox*) hbox, (GtkWidget*) entry, FALSE, FALSE, (guint) 0);
 	gtk_box_pack_start (content_area, (GtkWidget*) hbox, FALSE, FALSE, (guint) 10);
-	icon_view = templates_create_icon_view (self, self->priv->default_store);
-	scrollbar = utils_add_scrollbar ((GtkWidget*) icon_view);
-	frame = g_object_ref_sink ((GtkFrame*) gtk_frame_new (_ ("Choose an icon:")));
+	_tmp9_ = templates_create_icon_view (self, self->priv->default_store);
+	icon_view = _tmp9_;
+	_tmp10_ = utils_add_scrollbar ((GtkWidget*) icon_view);
+	scrollbar = _tmp10_;
+	_tmp11_ = _ ("Choose an icon:");
+	_tmp12_ = (GtkFrame*) gtk_frame_new (_tmp11_);
+	frame = g_object_ref_sink (_tmp12_);
 	gtk_container_add ((GtkContainer*) frame, scrollbar);
 	gtk_box_pack_start (content_area, (GtkWidget*) frame, TRUE, TRUE, (guint) 10);
 	gtk_widget_show_all ((GtkWidget*) content_area);
 	while (TRUE) {
+		gint _tmp13_;
+		guint _tmp14_;
+		GList* _tmp15_ = NULL;
 		GList* selected_items;
+		guint _tmp16_;
 		GtkTextIter start = {0};
 		GtkTextIter end = {0};
-		char* contents;
+		Document* _tmp17_ = NULL;
+		GtkTextIter _tmp18_ = {0};
+		GtkTextIter _tmp19_ = {0};
+		Document* _tmp20_ = NULL;
+		gchar* _tmp21_ = NULL;
+		gchar* contents;
+		GtkTreeModel* _tmp22_;
 		GtkTreeModel* model;
+		gconstpointer _tmp23_ = NULL;
+		GtkTreePath* _tmp24_;
 		GtkTreePath* path;
 		GtkTreeIter iter = {0};
-		char* icon_id;
-		if (!(gtk_dialog_run (dialog) == GTK_RESPONSE_ACCEPT)) {
+		gchar* icon_id = NULL;
+		GtkTreeIter _tmp25_ = {0};
+		const gchar* _tmp26_ = NULL;
+		_tmp13_ = gtk_dialog_run (dialog);
+		if (!(_tmp13_ == GTK_RESPONSE_ACCEPT)) {
 			break;
 		}
-		if (gtk_entry_get_text_length (entry) == 0) {
+		_tmp14_ = gtk_entry_get_text_length (entry);
+		if (_tmp14_ == 0) {
 			continue;
 		}
-		selected_items = gtk_icon_view_get_selected_items (icon_view);
-		if (g_list_length (selected_items) == 0) {
-			__g_list_free_gtk_tree_path_free0 (selected_items);
+		_tmp15_ = gtk_icon_view_get_selected_items (icon_view);
+		selected_items = _tmp15_;
+		_tmp16_ = g_list_length (selected_items);
+		if (_tmp16_ == 0) {
+			__g_list_free__gtk_tree_path_free0_0 (selected_items);
 			continue;
 		}
 		self->priv->nb_personal_templates++;
-		gtk_text_buffer_get_bounds ((GtkTextBuffer*) main_window_get_active_document (parent), &start, &end);
-		contents = gtk_text_buffer_get_text ((GtkTextBuffer*) main_window_get_active_document (parent), &start, &end, FALSE);
-		model = _g_object_ref0 (GTK_TREE_MODEL (self->priv->default_store));
-		path = _gtk_tree_path_copy0 ((GtkTreePath*) g_list_nth_data (selected_items, (guint) 0));
-		icon_id = NULL;
-		gtk_tree_model_get_iter (model, &iter, path);
+		_tmp17_ = main_window_get_active_document (parent);
+		gtk_text_buffer_get_bounds ((GtkTextBuffer*) _tmp17_, &_tmp18_, &_tmp19_);
+		start = _tmp18_;
+		end = _tmp19_;
+		_tmp20_ = main_window_get_active_document (parent);
+		_tmp21_ = gtk_text_buffer_get_text ((GtkTextBuffer*) _tmp20_, &start, &end, FALSE);
+		contents = _tmp21_;
+		_tmp22_ = _g_object_ref0 (GTK_TREE_MODEL (self->priv->default_store));
+		model = _tmp22_;
+		_tmp23_ = g_list_nth_data (selected_items, (guint) 0);
+		_tmp24_ = _gtk_tree_path_copy0 ((GtkTreePath*) _tmp23_);
+		path = _tmp24_;
+		gtk_tree_model_get_iter (model, &_tmp25_, path);
+		iter = _tmp25_;
 		gtk_tree_model_get (model, &iter, TEMPLATES_TEMPLATE_COLUMN_ICON_ID, &icon_id, -1, -1);
-		templates_add_template_from_string (self, self->priv->personal_store, gtk_entry_get_text (entry), icon_id, contents);
+		_tmp26_ = gtk_entry_get_text (entry);
+		templates_add_template_from_string (self, self->priv->personal_store, _tmp26_, icon_id, contents);
 		templates_add_personal_template (self, contents);
 		_g_free0 (icon_id);
 		_gtk_tree_path_free0 (path);
 		_g_object_unref0 (model);
 		_g_free0 (contents);
-		__g_list_free_gtk_tree_path_free0 (selected_items);
+		__g_list_free__gtk_tree_path_free0_0 (selected_items);
 		break;
 	}
 	gtk_object_destroy ((GtkObject*) dialog);
@@ -565,50 +846,78 @@ void templates_show_dialog_create (Templates* self, MainWindow* parent) {
 
 
 void templates_show_dialog_delete (Templates* self, MainWindow* parent) {
+	const gchar* _tmp0_ = NULL;
+	GtkDialog* _tmp1_ = NULL;
 	GtkDialog* dialog;
+	GtkWidget* _tmp2_ = NULL;
+	GtkBox* _tmp3_;
 	GtkBox* content_area;
+	GtkIconView* _tmp4_ = NULL;
 	GtkIconView* icon_view;
+	const gchar* _tmp5_ = NULL;
+	GtkWidget* _tmp6_ = NULL;
 	GtkWidget* component;
 	gint nb_personal_templates_before;
 	g_return_if_fail (self != NULL);
 	g_return_if_fail (parent != NULL);
-	dialog = g_object_ref_sink ((GtkDialog*) gtk_dialog_new_with_buttons (_ ("Delete Template(s)..."), (GtkWindow*) parent, GTK_DIALOG_NO_SEPARATOR, GTK_STOCK_DELETE, GTK_RESPONSE_ACCEPT, GTK_STOCK_OK, GTK_RESPONSE_REJECT, NULL, NULL));
+	_tmp0_ = _ ("Delete Template(s)...");
+	_tmp1_ = (GtkDialog*) gtk_dialog_new_with_buttons (_tmp0_, (GtkWindow*) parent, GTK_DIALOG_NO_SEPARATOR, GTK_STOCK_DELETE, GTK_RESPONSE_ACCEPT, GTK_STOCK_OK, GTK_RESPONSE_REJECT, NULL, NULL);
+	dialog = g_object_ref_sink (_tmp1_);
 	gtk_window_set_default_size ((GtkWindow*) dialog, 400, 200);
-	content_area = _g_object_ref0 (GTK_BOX (gtk_dialog_get_content_area (dialog)));
-	icon_view = templates_create_icon_view (self, self->priv->personal_store);
+	_tmp2_ = gtk_dialog_get_content_area (dialog);
+	_tmp3_ = _g_object_ref0 (GTK_BOX (_tmp2_));
+	content_area = _tmp3_;
+	_tmp4_ = templates_create_icon_view (self, self->priv->personal_store);
+	icon_view = _tmp4_;
 	gtk_icon_view_set_selection_mode (icon_view, GTK_SELECTION_MULTIPLE);
-	component = templates_get_dialog_component (self, _ ("Personal templates"), (GtkWidget*) icon_view);
+	_tmp5_ = _ ("Personal templates");
+	_tmp6_ = templates_get_dialog_component (self, _tmp5_, (GtkWidget*) icon_view);
+	component = _tmp6_;
 	gtk_box_pack_start (content_area, component, TRUE, TRUE, (guint) 10);
 	gtk_widget_show_all ((GtkWidget*) content_area);
 	nb_personal_templates_before = self->priv->nb_personal_templates;
 	while (TRUE) {
+		gint _tmp7_;
+		GList* _tmp8_ = NULL;
 		GList* selected_items;
+		GtkTreeModel* _tmp9_;
 		GtkTreeModel* model;
+		guint _tmp10_;
 		guint nb_selected_items;
-		if (!(gtk_dialog_run (dialog) == GTK_RESPONSE_ACCEPT)) {
+		_tmp7_ = gtk_dialog_run (dialog);
+		if (!(_tmp7_ == GTK_RESPONSE_ACCEPT)) {
 			break;
 		}
-		selected_items = gtk_icon_view_get_selected_items (icon_view);
-		model = _g_object_ref0 (GTK_TREE_MODEL (self->priv->personal_store));
-		nb_selected_items = g_list_length (selected_items);
+		_tmp8_ = gtk_icon_view_get_selected_items (icon_view);
+		selected_items = _tmp8_;
+		_tmp9_ = _g_object_ref0 (GTK_TREE_MODEL (self->priv->personal_store));
+		model = _tmp9_;
+		_tmp10_ = g_list_length (selected_items);
+		nb_selected_items = _tmp10_;
 		{
 			gint i;
 			i = 0;
 			{
-				gboolean _tmp0_;
-				_tmp0_ = TRUE;
+				gboolean _tmp11_;
+				_tmp11_ = TRUE;
 				while (TRUE) {
+					gconstpointer _tmp12_ = NULL;
+					GtkTreePath* _tmp13_;
 					GtkTreePath* path;
 					GtkTreeIter iter = {0};
-					if (!_tmp0_) {
+					GtkTreeIter _tmp14_ = {0};
+					if (!_tmp11_) {
 						i++;
 					}
-					_tmp0_ = FALSE;
+					_tmp11_ = FALSE;
 					if (!(i < nb_selected_items)) {
 						break;
 					}
-					path = _gtk_tree_path_copy0 ((GtkTreePath*) g_list_nth_data (selected_items, (guint) i));
-					gtk_tree_model_get_iter (model, &iter, path);
+					_tmp12_ = g_list_nth_data (selected_items, (guint) i);
+					_tmp13_ = _gtk_tree_path_copy0 ((GtkTreePath*) _tmp12_);
+					path = _tmp13_;
+					gtk_tree_model_get_iter (model, &_tmp14_, path);
+					iter = _tmp14_;
 					gtk_list_store_remove (self->priv->personal_store, &iter);
 					_gtk_tree_path_free0 (path);
 				}
@@ -616,7 +925,7 @@ void templates_show_dialog_delete (Templates* self, MainWindow* parent) {
 		}
 		self->priv->nb_personal_templates = self->priv->nb_personal_templates - ((gint) nb_selected_items);
 		_g_object_unref0 (model);
-		__g_list_free_gtk_tree_path_free0 (selected_items);
+		__g_list_free__gtk_tree_path_free0_0 (selected_items);
 	}
 	if (self->priv->nb_personal_templates != nb_personal_templates_before) {
 		templates_save_rc_file (self);
@@ -630,37 +939,46 @@ void templates_show_dialog_delete (Templates* self, MainWindow* parent) {
 }
 
 
-static void templates_add_template_from_string (Templates* self, GtkListStore* store, const char* name, const char* icon_id, const char* contents) {
+static void templates_add_template_from_string (Templates* self, GtkListStore* store, const gchar* name, const gchar* icon_id, const gchar* contents) {
+	gchar* _tmp0_;
+	gchar* _tmp1_;
+	gchar* _tmp2_;
+	gchar* _tmp3_;
+	GdkPixbuf* _tmp4_ = NULL;
+	GdkPixbuf* _tmp5_;
+	GdkPixbuf* pixbuf;
+	GtkTreeIter iter = {0};
+	GtkTreeIter _tmp6_ = {0};
 	GError * _inner_error_ = NULL;
 	g_return_if_fail (self != NULL);
 	g_return_if_fail (store != NULL);
 	g_return_if_fail (name != NULL);
 	g_return_if_fail (icon_id != NULL);
 	g_return_if_fail (contents != NULL);
-	{
-		char* _tmp0_;
-		char* _tmp1_;
-		GdkPixbuf* _tmp2_;
-		GdkPixbuf* pixbuf;
-		GtkTreeIter iter = {0};
-		pixbuf = (_tmp2_ = gdk_pixbuf_new_from_file (_tmp1_ = g_strconcat (_tmp0_ = g_strconcat (DATA_DIR "/images/templates/", icon_id, NULL), ".png", NULL), &_inner_error_), _g_free0 (_tmp1_), _g_free0 (_tmp0_), _tmp2_);
-		if (_inner_error_ != NULL) {
-			goto __catch8_g_error;
-		}
-		gtk_list_store_append (store, &iter);
-		gtk_list_store_set (store, &iter, TEMPLATES_TEMPLATE_COLUMN_PIXBUF, pixbuf, TEMPLATES_TEMPLATE_COLUMN_ICON_ID, icon_id, TEMPLATES_TEMPLATE_COLUMN_NAME, name, TEMPLATES_TEMPLATE_COLUMN_CONTENTS, contents, -1, -1);
-		_g_object_unref0 (pixbuf);
+	_tmp0_ = g_strconcat (DATA_DIR "/images/templates/", icon_id, NULL);
+	_tmp1_ = _tmp0_;
+	_tmp2_ = g_strconcat (_tmp1_, ".png", NULL);
+	_tmp3_ = _tmp2_;
+	_tmp4_ = gdk_pixbuf_new_from_file (_tmp3_, &_inner_error_);
+	_tmp5_ = _tmp4_;
+	_g_free0 (_tmp3_);
+	_g_free0 (_tmp1_);
+	pixbuf = _tmp5_;
+	if (_inner_error_ != NULL) {
+		goto __catch8_g_error;
 	}
+	gtk_list_store_append (store, &_tmp6_);
+	iter = _tmp6_;
+	gtk_list_store_set (store, &iter, TEMPLATES_TEMPLATE_COLUMN_PIXBUF, pixbuf, TEMPLATES_TEMPLATE_COLUMN_ICON_ID, icon_id, TEMPLATES_TEMPLATE_COLUMN_NAME, name, TEMPLATES_TEMPLATE_COLUMN_CONTENTS, contents, -1, -1);
+	_g_object_unref0 (pixbuf);
 	goto __finally8;
 	__catch8_g_error:
 	{
 		GError * e;
 		e = _inner_error_;
 		_inner_error_ = NULL;
-		{
-			fprintf (stderr, "Warning: impossible to load the icon of the template: %s\n", e->message);
-			_g_error_free0 (e);
-		}
+		fprintf (stderr, "Warning: impossible to load the icon of the template: %s\n", e->message);
+		_g_error_free0 (e);
 	}
 	__finally8:
 	if (_inner_error_ != NULL) {
@@ -671,37 +989,32 @@ static void templates_add_template_from_string (Templates* self, GtkListStore* s
 }
 
 
-static void templates_add_template_from_file (Templates* self, GtkListStore* store, const char* name, const char* icon_id, GFile* file) {
+static void templates_add_template_from_file (Templates* self, GtkListStore* store, const gchar* name, const gchar* icon_id, GFile* file) {
+	gchar* contents = NULL;
+	gchar* _tmp0_ = NULL;
 	GError * _inner_error_ = NULL;
 	g_return_if_fail (self != NULL);
 	g_return_if_fail (store != NULL);
 	g_return_if_fail (name != NULL);
 	g_return_if_fail (icon_id != NULL);
 	g_return_if_fail (file != NULL);
-	{
-		char* contents;
-		char* _tmp0_ = NULL;
-		char* _tmp1_;
-		contents = NULL;
-		g_file_load_contents (file, NULL, &_tmp0_, NULL, NULL, &_inner_error_);
-		contents = (_tmp1_ = _tmp0_, _g_free0 (contents), _tmp1_);
-		if (_inner_error_ != NULL) {
-			_g_free0 (contents);
-			goto __catch9_g_error;
-		}
-		templates_add_template_from_string (self, store, name, icon_id, contents);
+	g_file_load_contents (file, NULL, &_tmp0_, NULL, NULL, &_inner_error_);
+	_g_free0 (contents);
+	contents = _tmp0_;
+	if (_inner_error_ != NULL) {
 		_g_free0 (contents);
+		goto __catch9_g_error;
 	}
+	templates_add_template_from_string (self, store, name, icon_id, contents);
+	_g_free0 (contents);
 	goto __finally9;
 	__catch9_g_error:
 	{
 		GError * e;
 		e = _inner_error_;
 		_inner_error_ = NULL;
-		{
-			fprintf (stderr, "Warning: impossible to load the template \"%s\": %s\n", name, e->message);
-			_g_error_free0 (e);
-		}
+		fprintf (stderr, "Warning: impossible to load the template \"%s\": %s\n", name, e->message);
+		_g_error_free0 (e);
 	}
 	__finally9:
 	if (_inner_error_ != NULL) {
@@ -714,10 +1027,12 @@ static void templates_add_template_from_file (Templates* self, GtkListStore* sto
 
 static GtkIconView* templates_create_icon_view (Templates* self, GtkListStore* store) {
 	GtkIconView* result = NULL;
+	GtkIconView* _tmp0_ = NULL;
 	GtkIconView* icon_view;
 	g_return_val_if_fail (self != NULL, NULL);
 	g_return_val_if_fail (store != NULL, NULL);
-	icon_view = g_object_ref_sink ((GtkIconView*) gtk_icon_view_new_with_model ((GtkTreeModel*) store));
+	_tmp0_ = (GtkIconView*) gtk_icon_view_new_with_model ((GtkTreeModel*) store);
+	icon_view = g_object_ref_sink (_tmp0_);
 	gtk_icon_view_set_selection_mode (icon_view, GTK_SELECTION_SINGLE);
 	gtk_icon_view_set_text_column (icon_view, (gint) TEMPLATES_TEMPLATE_COLUMN_NAME);
 	gtk_icon_view_set_pixbuf_column (icon_view, (gint) TEMPLATES_TEMPLATE_COLUMN_PIXBUF);
@@ -727,60 +1042,73 @@ static GtkIconView* templates_create_icon_view (Templates* self, GtkListStore* s
 
 
 static void templates_on_icon_view_selection_changed (Templates* self, GtkIconView* icon_view, GtkIconView* other_icon_view) {
+	GList* _tmp0_ = NULL;
 	GList* selected_items;
+	guint _tmp1_;
 	g_return_if_fail (self != NULL);
 	g_return_if_fail (icon_view != NULL);
 	g_return_if_fail (other_icon_view != NULL);
-	selected_items = gtk_icon_view_get_selected_items (icon_view);
-	if (g_list_length (selected_items) > 0) {
+	_tmp0_ = gtk_icon_view_get_selected_items (icon_view);
+	selected_items = _tmp0_;
+	_tmp1_ = g_list_length (selected_items);
+	if (_tmp1_ > 0) {
 		g_signal_emit_by_name (other_icon_view, "unselect-all");
 	}
-	__g_list_free_gtk_tree_path_free0 (selected_items);
+	__g_list_free__gtk_tree_path_free0_0 (selected_items);
 }
 
 
-static void templates_add_personal_template (Templates* self, const char* contents) {
-	char* _tmp0_;
-	GFile* _tmp1_;
+static void templates_add_personal_template (Templates* self, const gchar* contents) {
+	gchar* _tmp0_ = NULL;
+	gchar* _tmp1_;
+	GFile* _tmp2_ = NULL;
+	GFile* _tmp3_;
 	GFile* file;
+	GFile* _tmp4_ = NULL;
+	GFile* parent;
+	gboolean _tmp5_ = FALSE;
+	gsize _tmp7_;
 	GError * _inner_error_ = NULL;
 	g_return_if_fail (self != NULL);
 	g_return_if_fail (contents != NULL);
 	templates_save_rc_file (self);
-	file = (_tmp1_ = g_file_new_for_path (_tmp0_ = g_strdup_printf ("%s/%d.tex", self->priv->rc_dir, self->priv->nb_personal_templates - 1)), _g_free0 (_tmp0_), _tmp1_);
-	{
-		GFile* parent;
-		gboolean _tmp2_ = FALSE;
-		parent = g_file_get_parent (file);
-		if (parent != NULL) {
-			_tmp2_ = !g_file_query_exists (parent, NULL);
-		} else {
-			_tmp2_ = FALSE;
-		}
-		if (_tmp2_) {
-			g_file_make_directory_with_parents (parent, NULL, &_inner_error_);
-			if (_inner_error_ != NULL) {
-				_g_object_unref0 (parent);
-				goto __catch10_g_error;
-			}
-		}
-		g_file_replace_contents (file, contents, strlen (contents), NULL, FALSE, G_FILE_CREATE_NONE, NULL, NULL, &_inner_error_);
+	_tmp0_ = g_strdup_printf ("%s/%d.tex", self->priv->rc_dir, self->priv->nb_personal_templates - 1);
+	_tmp1_ = _tmp0_;
+	_tmp2_ = g_file_new_for_path (_tmp1_);
+	_tmp3_ = _tmp2_;
+	_g_free0 (_tmp1_);
+	file = _tmp3_;
+	_tmp4_ = g_file_get_parent (file);
+	parent = _tmp4_;
+	if (parent != NULL) {
+		gboolean _tmp6_;
+		_tmp6_ = g_file_query_exists (parent, NULL);
+		_tmp5_ = !_tmp6_;
+	} else {
+		_tmp5_ = FALSE;
+	}
+	if (_tmp5_) {
+		g_file_make_directory_with_parents (parent, NULL, &_inner_error_);
 		if (_inner_error_ != NULL) {
 			_g_object_unref0 (parent);
 			goto __catch10_g_error;
 		}
+	}
+	_tmp7_ = strlen (contents);
+	g_file_replace_contents (file, contents, _tmp7_, NULL, FALSE, G_FILE_CREATE_NONE, NULL, NULL, &_inner_error_);
+	if (_inner_error_ != NULL) {
 		_g_object_unref0 (parent);
+		goto __catch10_g_error;
 	}
+	_g_object_unref0 (parent);
 	goto __finally10;
 	__catch10_g_error:
 	{
 		GError * e;
 		e = _inner_error_;
 		_inner_error_ = NULL;
-		{
-			fprintf (stderr, "Warning: impossible to save templates: %s\n", e->message);
-			_g_error_free0 (e);
-		}
+		fprintf (stderr, "Warning: impossible to save templates: %s\n", e->message);
+		_g_error_free0 (e);
 	}
 	__finally10:
 	if (_inner_error_ != NULL) {
@@ -794,28 +1122,42 @@ static void templates_add_personal_template (Templates* self, const char* conten
 
 
 static void templates_save_rc_file (Templates* self) {
+	gchar** _tmp2_ = NULL;
+	gchar** names;
 	gint names_length1;
 	gint _names_size_;
-	char** _tmp1_;
-	char** names;
+	gchar** _tmp3_ = NULL;
+	gchar** icons;
 	gint icons_length1;
 	gint _icons_size_;
-	char** _tmp2_;
-	char** icons;
 	GtkTreeIter iter = {0};
+	GtkTreeModel* _tmp4_;
 	GtkTreeModel* model;
+	GtkTreeIter _tmp5_ = {0};
+	gboolean _tmp6_;
 	gboolean valid_iter;
 	gint i;
+	GKeyFile* _tmp8_ = NULL;
+	GKeyFile* key_file;
+	gchar* _tmp9_ = NULL;
+	gchar* key_file_data;
+	GFile* _tmp10_ = NULL;
+	GFile* file;
+	GFile* _tmp11_ = NULL;
+	GFile* parent;
+	gboolean _tmp12_ = FALSE;
+	gsize _tmp14_;
 	GError * _inner_error_ = NULL;
 	g_return_if_fail (self != NULL);
 	if (self->priv->nb_personal_templates == 0) {
-		{
-			GFile* _tmp0_;
-			g_file_delete (_tmp0_ = g_file_new_for_path (self->priv->rc_file), NULL, &_inner_error_);
-			_g_object_unref0 (_tmp0_);
-			if (_inner_error_ != NULL) {
-				goto __catch11_g_error;
-			}
+		GFile* _tmp0_ = NULL;
+		GFile* _tmp1_;
+		_tmp0_ = g_file_new_for_path (self->priv->rc_file);
+		_tmp1_ = _tmp0_;
+		g_file_delete (_tmp1_, NULL, &_inner_error_);
+		_g_object_unref0 (_tmp1_);
+		if (_inner_error_ != NULL) {
+			goto __catch11_g_error;
 		}
 		goto __finally11;
 		__catch11_g_error:
@@ -823,9 +1165,7 @@ static void templates_save_rc_file (Templates* self) {
 			GError * e;
 			e = _inner_error_;
 			_inner_error_ = NULL;
-			{
-				_g_error_free0 (e);
-			}
+			_g_error_free0 (e);
 		}
 		__finally11:
 		if (_inner_error_ != NULL) {
@@ -835,47 +1175,49 @@ static void templates_save_rc_file (Templates* self) {
 		}
 		return;
 	}
-	names = (_tmp1_ = g_new0 (char*, self->priv->nb_personal_templates + 1), names_length1 = self->priv->nb_personal_templates, _names_size_ = names_length1, _tmp1_);
-	icons = (_tmp2_ = g_new0 (char*, self->priv->nb_personal_templates + 1), icons_length1 = self->priv->nb_personal_templates, _icons_size_ = icons_length1, _tmp2_);
-	model = _g_object_ref0 (GTK_TREE_MODEL (self->priv->personal_store));
-	valid_iter = gtk_tree_model_get_iter_first (model, &iter);
+	_tmp2_ = g_new0 (gchar*, self->priv->nb_personal_templates + 1);
+	names = _tmp2_;
+	names_length1 = self->priv->nb_personal_templates;
+	_names_size_ = self->priv->nb_personal_templates;
+	_tmp3_ = g_new0 (gchar*, self->priv->nb_personal_templates + 1);
+	icons = _tmp3_;
+	icons_length1 = self->priv->nb_personal_templates;
+	_icons_size_ = self->priv->nb_personal_templates;
+	_tmp4_ = _g_object_ref0 (GTK_TREE_MODEL (self->priv->personal_store));
+	model = _tmp4_;
+	_tmp6_ = gtk_tree_model_get_iter_first (model, &_tmp5_);
+	iter = _tmp5_;
+	valid_iter = _tmp6_;
 	i = 0;
 	while (TRUE) {
+		gboolean _tmp7_;
 		if (!valid_iter) {
 			break;
 		}
 		gtk_tree_model_get (model, &iter, TEMPLATES_TEMPLATE_COLUMN_NAME, &names[i], TEMPLATES_TEMPLATE_COLUMN_ICON_ID, &icons[i], -1, -1);
-		valid_iter = gtk_tree_model_iter_next (model, &iter);
+		_tmp7_ = gtk_tree_model_iter_next (model, &iter);
+		valid_iter = _tmp7_;
 		i++;
 	}
-	{
-		GKeyFile* key_file;
-		char* key_file_data;
-		GFile* file;
-		GFile* parent;
-		gboolean _tmp3_ = FALSE;
-		key_file = g_key_file_new ();
-		g_key_file_set_string_list (key_file, APP_NAME, "names", (const gchar* const*) names, names_length1);
-		g_key_file_set_string_list (key_file, APP_NAME, "icons", (const gchar* const*) icons, icons_length1);
-		key_file_data = g_key_file_to_data (key_file, NULL, NULL);
-		file = g_file_new_for_path (self->priv->rc_file);
-		parent = g_file_get_parent (file);
-		if (parent != NULL) {
-			_tmp3_ = !g_file_query_exists (parent, NULL);
-		} else {
-			_tmp3_ = FALSE;
-		}
-		if (_tmp3_) {
-			g_file_make_directory_with_parents (parent, NULL, &_inner_error_);
-			if (_inner_error_ != NULL) {
-				_g_object_unref0 (parent);
-				_g_object_unref0 (file);
-				_g_free0 (key_file_data);
-				_g_key_file_free0 (key_file);
-				goto __catch12_g_error;
-			}
-		}
-		g_file_replace_contents (file, key_file_data, strlen (key_file_data), NULL, FALSE, G_FILE_CREATE_NONE, NULL, NULL, &_inner_error_);
+	_tmp8_ = g_key_file_new ();
+	key_file = _tmp8_;
+	g_key_file_set_string_list (key_file, APP_NAME, "names", (const gchar* const*) names, names_length1);
+	g_key_file_set_string_list (key_file, APP_NAME, "icons", (const gchar* const*) icons, icons_length1);
+	_tmp9_ = g_key_file_to_data (key_file, NULL, NULL);
+	key_file_data = _tmp9_;
+	_tmp10_ = g_file_new_for_path (self->priv->rc_file);
+	file = _tmp10_;
+	_tmp11_ = g_file_get_parent (file);
+	parent = _tmp11_;
+	if (parent != NULL) {
+		gboolean _tmp13_;
+		_tmp13_ = g_file_query_exists (parent, NULL);
+		_tmp12_ = !_tmp13_;
+	} else {
+		_tmp12_ = FALSE;
+	}
+	if (_tmp12_) {
+		g_file_make_directory_with_parents (parent, NULL, &_inner_error_);
 		if (_inner_error_ != NULL) {
 			_g_object_unref0 (parent);
 			_g_object_unref0 (file);
@@ -883,21 +1225,28 @@ static void templates_save_rc_file (Templates* self) {
 			_g_key_file_free0 (key_file);
 			goto __catch12_g_error;
 		}
+	}
+	_tmp14_ = strlen (key_file_data);
+	g_file_replace_contents (file, key_file_data, _tmp14_, NULL, FALSE, G_FILE_CREATE_NONE, NULL, NULL, &_inner_error_);
+	if (_inner_error_ != NULL) {
 		_g_object_unref0 (parent);
 		_g_object_unref0 (file);
 		_g_free0 (key_file_data);
 		_g_key_file_free0 (key_file);
+		goto __catch12_g_error;
 	}
+	_g_object_unref0 (parent);
+	_g_object_unref0 (file);
+	_g_free0 (key_file_data);
+	_g_key_file_free0 (key_file);
 	goto __finally12;
 	__catch12_g_error:
 	{
 		GError * e;
 		e = _inner_error_;
 		_inner_error_ = NULL;
-		{
-			fprintf (stderr, "Warning: impossible to save templates: %s\n", e->message);
-			_g_error_free0 (e);
-		}
+		fprintf (stderr, "Warning: impossible to save templates: %s\n", e->message);
+		_g_error_free0 (e);
 	}
 	__finally12:
 	if (_inner_error_ != NULL) {
@@ -915,62 +1264,80 @@ static void templates_save_rc_file (Templates* self) {
 
 
 static void templates_save_contents (Templates* self) {
-	char* _tmp0_;
+	gchar* _tmp0_ = NULL;
+	gchar* _tmp1_;
 	GtkTreeIter iter = {0};
+	GtkTreeModel* _tmp2_;
 	GtkTreeModel* model;
+	GtkTreeIter _tmp3_ = {0};
+	gboolean _tmp4_;
 	gboolean valid_iter;
 	gint i;
 	GError * _inner_error_ = NULL;
 	g_return_if_fail (self != NULL);
-	system (_tmp0_ = g_strdup_printf ("rm -f %s/*.tex", self->priv->rc_dir));
-	_g_free0 (_tmp0_);
-	model = _g_object_ref0 (GTK_TREE_MODEL (self->priv->personal_store));
-	valid_iter = gtk_tree_model_get_iter_first (model, &iter);
+	_tmp0_ = g_strdup_printf ("rm -f %s/*.tex", self->priv->rc_dir);
+	_tmp1_ = _tmp0_;
+	system (_tmp1_);
+	_g_free0 (_tmp1_);
+	_tmp2_ = _g_object_ref0 (GTK_TREE_MODEL (self->priv->personal_store));
+	model = _tmp2_;
+	_tmp4_ = gtk_tree_model_get_iter_first (model, &_tmp3_);
+	iter = _tmp3_;
+	valid_iter = _tmp4_;
 	i = 0;
 	while (TRUE) {
-		char* contents;
-		char* _tmp1_;
-		GFile* _tmp2_;
+		gchar* contents = NULL;
+		gchar* _tmp5_ = NULL;
+		gchar* _tmp6_;
+		GFile* _tmp7_ = NULL;
+		GFile* _tmp8_;
 		GFile* file;
+		GFile* _tmp9_ = NULL;
+		GFile* parent;
+		gboolean _tmp10_ = FALSE;
+		gsize _tmp12_;
+		gboolean _tmp13_;
 		if (!valid_iter) {
 			break;
 		}
-		contents = NULL;
 		gtk_tree_model_get (model, &iter, TEMPLATES_TEMPLATE_COLUMN_CONTENTS, &contents, -1, -1);
-		file = (_tmp2_ = g_file_new_for_path (_tmp1_ = g_strdup_printf ("%s/%d.tex", self->priv->rc_dir, i)), _g_free0 (_tmp1_), _tmp2_);
-		{
-			GFile* parent;
-			gboolean _tmp3_ = FALSE;
-			parent = g_file_get_parent (file);
-			if (parent != NULL) {
-				_tmp3_ = !g_file_query_exists (parent, NULL);
-			} else {
-				_tmp3_ = FALSE;
-			}
-			if (_tmp3_) {
-				g_file_make_directory_with_parents (parent, NULL, &_inner_error_);
-				if (_inner_error_ != NULL) {
-					_g_object_unref0 (parent);
-					goto __catch13_g_error;
-				}
-			}
-			g_file_replace_contents (file, contents, strlen (contents), NULL, FALSE, G_FILE_CREATE_NONE, NULL, NULL, &_inner_error_);
+		_tmp5_ = g_strdup_printf ("%s/%d.tex", self->priv->rc_dir, i);
+		_tmp6_ = _tmp5_;
+		_tmp7_ = g_file_new_for_path (_tmp6_);
+		_tmp8_ = _tmp7_;
+		_g_free0 (_tmp6_);
+		file = _tmp8_;
+		_tmp9_ = g_file_get_parent (file);
+		parent = _tmp9_;
+		if (parent != NULL) {
+			gboolean _tmp11_;
+			_tmp11_ = g_file_query_exists (parent, NULL);
+			_tmp10_ = !_tmp11_;
+		} else {
+			_tmp10_ = FALSE;
+		}
+		if (_tmp10_) {
+			g_file_make_directory_with_parents (parent, NULL, &_inner_error_);
 			if (_inner_error_ != NULL) {
 				_g_object_unref0 (parent);
 				goto __catch13_g_error;
 			}
+		}
+		_tmp12_ = strlen (contents);
+		g_file_replace_contents (file, contents, _tmp12_, NULL, FALSE, G_FILE_CREATE_NONE, NULL, NULL, &_inner_error_);
+		if (_inner_error_ != NULL) {
 			_g_object_unref0 (parent);
+			goto __catch13_g_error;
 		}
+		_g_object_unref0 (parent);
 		goto __finally13;
 		__catch13_g_error:
 		{
 			GError * e;
 			e = _inner_error_;
 			_inner_error_ = NULL;
-			{
-				fprintf (stderr, "Warning: impossible to save the template: %s\n", e->message);
-				_g_error_free0 (e);
-			}
+			fprintf (stderr, "Warning: impossible to save the template: %s\n", e->message);
+			_g_error_free0 (e);
 		}
 		__finally13:
 		if (_inner_error_ != NULL) {
@@ -981,7 +1348,8 @@ static void templates_save_contents (Templates* self) {
 			g_clear_error (&_inner_error_);
 			return;
 		}
-		valid_iter = gtk_tree_model_iter_next (model, &iter);
+		_tmp13_ = gtk_tree_model_iter_next (model, &iter);
+		valid_iter = _tmp13_;
 		i++;
 		_g_object_unref0 (file);
 		_g_free0 (contents);
@@ -1044,4 +1412,3 @@ static void _vala_array_free (gpointer array, gint array_length, GDestroyNotify
 
 
 
-
diff --git a/src/C/utils.c b/src/C/utils.c
index e2406b3..398c3df 100644
--- a/src/C/utils.c
+++ b/src/C/utils.c
@@ -1,4 +1,4 @@
-/* utils.c generated by valac 0.10.3, the Vala compiler
+/* utils.c generated by valac 0.12.1, the Vala compiler
  * generated from utils.vala, do not modify */
 
 /*
@@ -48,17 +48,17 @@ typedef struct _BuildTool BuildTool;
 
 struct _BuildJob {
 	gboolean must_succeed;
-	char* post_processor;
-	char* command;
-	char** command_args;
+	gchar* post_processor;
+	gchar* command;
+	gchar** command_args;
 	gint command_args_length1;
 };
 
 struct _BuildTool {
-	char* description;
-	char* extensions;
-	char* label;
-	char* icon;
+	gchar* description;
+	gchar* extensions;
+	gchar* label;
+	gchar* icon;
 	gboolean compilation;
 	GList* jobs;
 };
@@ -66,13 +66,13 @@ struct _BuildTool {
 
 
 void utils_flush_queue (void);
-char* utils_str_middle_truncate (const char* str, guint max_length);
-char* utils_replace_home_dir_with_tilde (const char* uri);
-char* utils_uri_get_dirname (const char* uri);
-char* utils_get_dirname_for_display (GFile* location);
-char* utils_get_shortname (const char* path);
-glong utils_get_extension_pos (const char* path);
-char* utils_get_extension (const char* path);
+gchar* utils_str_middle_truncate (const gchar* str, guint max_length);
+gchar* utils_replace_home_dir_with_tilde (const gchar* uri);
+gchar* utils_uri_get_dirname (const gchar* uri);
+gchar* utils_get_dirname_for_display (GFile* location);
+gchar* utils_get_shortname (const gchar* path);
+glong utils_get_extension_pos (const gchar* path);
+gchar* utils_get_extension (const gchar* path);
 #define UTILS_ALL_WORKSPACES ((guint) 0xffffff)
 guint utils_get_window_workspace (GtkWindow* gtkwindow);
 GtkWidget* utils_add_scrollbar (GtkWidget* child);
@@ -91,14 +91,14 @@ void utils_delete_file (GFile* file);
 gboolean utils_tree_model_iter_prev (GtkTreeModel* model, GtkTreeIter* iter);
 void utils_set_entry_error (GtkWidget* entry, gboolean _error_);
 gint utils_get_selected_row (GtkTreeView* view, GtkTreeIter* iter_to_set);
-GdkPixbuf* utils_get_pixbuf_from_stock (const char* stock_id, GtkIconSize size);
-static int _vala_strcmp0 (const char * str1, const char * str2);
-
+GdkPixbuf* utils_get_pixbuf_from_stock (const gchar* stock_id, GtkIconSize size);
 
 
 void utils_flush_queue (void) {
 	while (TRUE) {
-		if (!gtk_events_pending ()) {
+		gboolean _tmp0_;
+		_tmp0_ = gtk_events_pending ();
+		if (!_tmp0_) {
 			break;
 		}
 		gtk_main_iteration ();
@@ -106,22 +106,16 @@ void utils_flush_queue (void) {
 }
 
 
-static glong string_get_length (const char* self) {
-	glong result;
-	g_return_val_if_fail (self != NULL, 0L);
-	result = g_utf8_strlen (self, (gssize) (-1));
-	return result;
-}
-
-
-static char* string_slice (const char* self, glong start, glong end) {
-	char* result = NULL;
+static gchar* string_slice (const gchar* self, glong start, glong end) {
+	gchar* result = NULL;
+	gint _tmp0_;
 	glong string_length;
-	gboolean _tmp0_ = FALSE;
 	gboolean _tmp1_ = FALSE;
-	const char* start_string;
+	gboolean _tmp2_ = FALSE;
+	gchar* _tmp3_ = NULL;
 	g_return_val_if_fail (self != NULL, NULL);
-	string_length = string_get_length (self);
+	_tmp0_ = strlen (self);
+	string_length = (glong) _tmp0_;
 	if (start < 0) {
 		start = string_length + start;
 	}
@@ -129,199 +123,288 @@ static char* string_slice (const char* self, glong start, glong end) {
 		end = string_length + end;
 	}
 	if (start >= 0) {
-		_tmp0_ = start <= string_length;
+		_tmp1_ = start <= string_length;
 	} else {
-		_tmp0_ = FALSE;
+		_tmp1_ = FALSE;
 	}
-	g_return_val_if_fail (_tmp0_, NULL);
+	g_return_val_if_fail (_tmp1_, NULL);
 	if (end >= 0) {
-		_tmp1_ = end <= string_length;
+		_tmp2_ = end <= string_length;
 	} else {
-		_tmp1_ = FALSE;
+		_tmp2_ = FALSE;
 	}
-	g_return_val_if_fail (_tmp1_, NULL);
+	g_return_val_if_fail (_tmp2_, NULL);
 	g_return_val_if_fail (start <= end, NULL);
-	start_string = g_utf8_offset_to_pointer (self, start);
-	result = g_strndup (start_string, ((gchar*) g_utf8_offset_to_pointer (start_string, end - start)) - ((gchar*) start_string));
+	_tmp3_ = g_strndup (((gchar*) self) + start, (gsize) (end - start));
+	result = _tmp3_;
 	return result;
 }
 
 
-char* utils_str_middle_truncate (const char* str, guint max_length) {
-	char* result = NULL;
+gchar* utils_str_middle_truncate (const gchar* str, guint max_length) {
+	gchar* result = NULL;
+	gint _tmp0_;
 	guint half_length;
-	glong l;
-	char* _tmp0_;
-	char* _tmp1_;
-	char* _tmp2_;
-	char* _tmp3_;
+	gint _tmp2_;
+	gint l;
+	gchar* _tmp3_ = NULL;
+	gchar* _tmp4_;
+	gchar* _tmp5_;
+	gchar* _tmp6_;
+	gchar* _tmp7_ = NULL;
+	gchar* _tmp8_;
+	gchar* _tmp9_;
+	gchar* _tmp10_;
 	g_return_val_if_fail (str != NULL, NULL);
-	if (string_get_length (str) <= max_length) {
-		result = g_strdup (str);
+	_tmp0_ = strlen (str);
+	if (_tmp0_ <= max_length) {
+		gchar* _tmp1_;
+		_tmp1_ = g_strdup (str);
+		result = _tmp1_;
 		return result;
 	}
 	half_length = (max_length - 4) / 2;
-	l = string_get_length (str);
-	result = (_tmp3_ = g_strconcat (_tmp1_ = g_strconcat (_tmp0_ = string_slice (str, (glong) 0, (glong) half_length), "...", NULL), _tmp2_ = string_slice (str, l - half_length, l), NULL), _g_free0 (_tmp2_), _g_free0 (_tmp1_), _g_free0 (_tmp0_), _tmp3_);
+	_tmp2_ = strlen (str);
+	l = _tmp2_;
+	_tmp3_ = string_slice (str, (glong) 0, (glong) half_length);
+	_tmp4_ = _tmp3_;
+	_tmp5_ = g_strconcat (_tmp4_, "...", NULL);
+	_tmp6_ = _tmp5_;
+	_tmp7_ = string_slice (str, (glong) (l - half_length), (glong) l);
+	_tmp8_ = _tmp7_;
+	_tmp9_ = g_strconcat (_tmp6_, _tmp8_, NULL);
+	_tmp10_ = _tmp9_;
+	_g_free0 (_tmp8_);
+	_g_free0 (_tmp6_);
+	_g_free0 (_tmp4_);
+	result = _tmp10_;
 	return result;
 }
 
 
-char* utils_replace_home_dir_with_tilde (const char* uri) {
-	char* result = NULL;
-	char* home;
+gchar* utils_replace_home_dir_with_tilde (const gchar* uri) {
+	gchar* result = NULL;
+	const gchar* _tmp0_ = NULL;
+	gchar* _tmp1_;
+	gchar* home;
+	gboolean _tmp3_;
+	gchar* _tmp10_;
 	g_return_val_if_fail (uri != NULL, NULL);
 	g_return_val_if_fail (uri != NULL, NULL);
-	home = g_strdup (g_get_home_dir ());
-	if (_vala_strcmp0 (uri, home) == 0) {
-		result = g_strdup ("~");
+	_tmp0_ = g_get_home_dir ();
+	_tmp1_ = g_strdup (_tmp0_);
+	home = _tmp1_;
+	if (g_strcmp0 (uri, home) == 0) {
+		gchar* _tmp2_;
+		_tmp2_ = g_strdup ("~");
+		result = _tmp2_;
 		_g_free0 (home);
 		return result;
 	}
-	if (g_str_has_prefix (uri, home)) {
-		char* _tmp0_;
-		char* _tmp1_;
-		result = (_tmp1_ = g_strconcat ("~", _tmp0_ = string_slice (uri, string_get_length (home), string_get_length (uri)), NULL), _g_free0 (_tmp0_), _tmp1_);
+	_tmp3_ = g_str_has_prefix (uri, home);
+	if (_tmp3_) {
+		gint _tmp4_;
+		gint _tmp5_;
+		gchar* _tmp6_ = NULL;
+		gchar* _tmp7_;
+		gchar* _tmp8_;
+		gchar* _tmp9_;
+		_tmp4_ = strlen (home);
+		_tmp5_ = strlen (uri);
+		_tmp6_ = string_slice (uri, (glong) _tmp4_, (glong) _tmp5_);
+		_tmp7_ = _tmp6_;
+		_tmp8_ = g_strconcat ("~", _tmp7_, NULL);
+		_tmp9_ = _tmp8_;
+		_g_free0 (_tmp7_);
+		result = _tmp9_;
 		_g_free0 (home);
 		return result;
 	}
-	result = g_strdup (uri);
+	_tmp10_ = g_strdup (uri);
+	result = _tmp10_;
 	_g_free0 (home);
 	return result;
 }
 
 
-char* utils_uri_get_dirname (const char* uri) {
-	char* result = NULL;
-	char* dir;
+gchar* utils_uri_get_dirname (const gchar* uri) {
+	gchar* result = NULL;
+	gchar* _tmp0_ = NULL;
+	gchar* dir;
+	gchar* _tmp1_ = NULL;
 	g_return_val_if_fail (uri != NULL, NULL);
 	g_return_val_if_fail (uri != NULL, NULL);
-	dir = g_path_get_dirname (uri);
-	if (_vala_strcmp0 (dir, ".") == 0) {
+	_tmp0_ = g_path_get_dirname (uri);
+	dir = _tmp0_;
+	if (g_strcmp0 (dir, ".") == 0) {
 		result = NULL;
 		_g_free0 (dir);
 		return result;
 	}
-	result = utils_replace_home_dir_with_tilde (dir);
+	_tmp1_ = utils_replace_home_dir_with_tilde (dir);
+	result = _tmp1_;
 	_g_free0 (dir);
 	return result;
 }
 
 
-char* utils_get_dirname_for_display (GFile* location) {
-	char* result = NULL;
+gchar* utils_get_dirname_for_display (GFile* location) {
+	gchar* result = NULL;
+	GMount* _tmp0_ = NULL;
+	GMount* mount;
+	const gchar* _tmp1_ = NULL;
+	gchar* _tmp2_;
+	gchar* mount_name;
+	gchar* _tmp3_ = NULL;
+	gchar* _tmp4_;
+	gchar* _tmp6_ = NULL;
+	gchar* dirname;
+	gboolean _tmp7_ = FALSE;
+	gchar* _tmp8_;
+	gchar* _tmp9_;
+	gchar* _tmp10_;
+	gchar* _tmp11_;
 	GError * _inner_error_ = NULL;
 	g_return_val_if_fail (location != NULL, NULL);
-	{
-		GMount* mount;
-		char* mount_name;
-		char* _tmp0_;
-		char* dirname;
-		gboolean _tmp2_ = FALSE;
-		char* _tmp3_;
-		char* _tmp4_;
-		mount = g_file_find_enclosing_mount (location, NULL, &_inner_error_);
-		if (_inner_error_ != NULL) {
-			goto __catch40_g_error;
-		}
-		mount_name = g_strdup (g_mount_get_name (mount));
-		_tmp0_ = g_file_get_path (location);
-		if (_tmp0_ == NULL) {
-			char* _tmp1_;
-			_tmp0_ = (_tmp1_ = g_file_get_uri (location), _g_free0 (_tmp0_), _tmp1_);
-		}
-		dirname = utils_uri_get_dirname (_tmp0_);
-		if (dirname == NULL) {
-			_tmp2_ = TRUE;
-		} else {
-			_tmp2_ = _vala_strcmp0 (dirname, ".") == 0;
-		}
-		if (_tmp2_) {
-			result = mount_name;
-			_g_free0 (dirname);
-			_g_free0 (_tmp0_);
-			_g_object_unref0 (mount);
-			return result;
-		}
-		result = (_tmp4_ = g_strconcat (_tmp3_ = g_strconcat (mount_name, " ", NULL), dirname, NULL), _g_free0 (_tmp3_), _tmp4_);
+	_tmp0_ = g_file_find_enclosing_mount (location, NULL, &_inner_error_);
+	mount = _tmp0_;
+	if (_inner_error_ != NULL) {
+		goto __catch40_g_error;
+	}
+	_tmp1_ = g_mount_get_name (mount);
+	_tmp2_ = g_strdup (_tmp1_);
+	mount_name = _tmp2_;
+	_tmp3_ = g_file_get_path (location);
+	_tmp4_ = _tmp3_;
+	if (_tmp4_ == NULL) {
+		gchar* _tmp5_ = NULL;
+		_tmp5_ = g_file_get_uri (location);
+		_g_free0 (_tmp4_);
+		_tmp4_ = _tmp5_;
+	}
+	_tmp6_ = utils_uri_get_dirname (_tmp4_);
+	dirname = _tmp6_;
+	if (dirname == NULL) {
+		_tmp7_ = TRUE;
+	} else {
+		_tmp7_ = g_strcmp0 (dirname, ".") == 0;
+	}
+	if (_tmp7_) {
+		result = mount_name;
 		_g_free0 (dirname);
-		_g_free0 (_tmp0_);
-		_g_free0 (mount_name);
+		_g_free0 (_tmp4_);
 		_g_object_unref0 (mount);
 		return result;
-		_g_free0 (dirname);
-		_g_free0 (_tmp0_);
-		_g_free0 (mount_name);
-		_g_object_unref0 (mount);
 	}
+	_tmp8_ = g_strconcat (mount_name, " ", NULL);
+	_tmp9_ = _tmp8_;
+	_tmp10_ = g_strconcat (_tmp9_, dirname, NULL);
+	_tmp11_ = _tmp10_;
+	_g_free0 (_tmp9_);
+	result = _tmp11_;
+	_g_free0 (dirname);
+	_g_free0 (_tmp4_);
+	_g_free0 (mount_name);
+	_g_object_unref0 (mount);
+	return result;
+	_g_free0 (dirname);
+	_g_free0 (_tmp4_);
+	_g_free0 (mount_name);
+	_g_object_unref0 (mount);
 	goto __finally40;
 	__catch40_g_error:
 	{
 		GError * e;
+		gchar* _tmp12_ = NULL;
+		gchar* _tmp13_;
+		gchar* _tmp15_ = NULL;
 		e = _inner_error_;
 		_inner_error_ = NULL;
-		{
-			char* _tmp5_;
-			_tmp5_ = g_file_get_path (location);
-			if (_tmp5_ == NULL) {
-				char* _tmp6_;
-				_tmp5_ = (_tmp6_ = g_file_get_uri (location), _g_free0 (_tmp5_), _tmp6_);
-			}
-			result = utils_uri_get_dirname (_tmp5_);
-			_g_free0 (_tmp5_);
-			_g_error_free0 (e);
-			return result;
+		_tmp12_ = g_file_get_path (location);
+		_tmp13_ = _tmp12_;
+		if (_tmp13_ == NULL) {
+			gchar* _tmp14_ = NULL;
+			_tmp14_ = g_file_get_uri (location);
+			_g_free0 (_tmp13_);
+			_tmp13_ = _tmp14_;
 		}
+		_tmp15_ = utils_uri_get_dirname (_tmp13_);
+		result = _tmp15_;
+		_g_free0 (_tmp13_);
+		_g_error_free0 (e);
+		return result;
 	}
 	__finally40:
-	{
-		g_critical ("file %s: line %d: uncaught error: %s (%s, %d)", __FILE__, __LINE__, _inner_error_->message, g_quark_to_string (_inner_error_->domain), _inner_error_->code);
-		g_clear_error (&_inner_error_);
-		return NULL;
-	}
+	g_critical ("file %s: line %d: uncaught error: %s (%s, %d)", __FILE__, __LINE__, _inner_error_->message, g_quark_to_string (_inner_error_->domain), _inner_error_->code);
+	g_clear_error (&_inner_error_);
+	return NULL;
 }
 
 
-char* utils_get_shortname (const char* path) {
-	char* result = NULL;
+gchar* utils_get_shortname (const gchar* path) {
+	gchar* result = NULL;
+	glong _tmp0_;
+	gchar* _tmp1_ = NULL;
 	g_return_val_if_fail (path != NULL, NULL);
-	result = string_slice (path, (glong) 0, utils_get_extension_pos (path));
+	_tmp0_ = utils_get_extension_pos (path);
+	_tmp1_ = string_slice (path, (glong) 0, _tmp0_);
+	result = _tmp1_;
 	return result;
 }
 
 
-char* utils_get_extension (const char* path) {
-	char* result = NULL;
+gchar* utils_get_extension (const gchar* path) {
+	gchar* result = NULL;
+	glong _tmp0_;
+	gint _tmp1_;
+	gchar* _tmp2_ = NULL;
 	g_return_val_if_fail (path != NULL, NULL);
-	result = string_slice (path, utils_get_extension_pos (path), string_get_length (path));
+	_tmp0_ = utils_get_extension_pos (path);
+	_tmp1_ = strlen (path);
+	_tmp2_ = string_slice (path, _tmp0_, (glong) _tmp1_);
+	result = _tmp2_;
+	return result;
+}
+
+
+static gchar string_get (const gchar* self, glong index) {
+	gchar result = '\0';
+	g_return_val_if_fail (self != NULL, '\0');
+	result = ((gchar*) self)[index];
 	return result;
 }
 
 
-glong utils_get_extension_pos (const char* path) {
+glong utils_get_extension_pos (const gchar* path) {
 	glong result = 0L;
+	gint _tmp0_;
 	glong l;
 	g_return_val_if_fail (path != NULL, 0L);
-	l = string_get_length (path);
+	_tmp0_ = strlen (path);
+	l = (glong) _tmp0_;
 	{
 		glong i;
 		i = l - 1;
 		{
-			gboolean _tmp0_;
-			_tmp0_ = TRUE;
+			gboolean _tmp1_;
+			_tmp1_ = TRUE;
 			while (TRUE) {
-				if (!_tmp0_) {
+				gchar _tmp2_;
+				if (!_tmp1_) {
 					i--;
 				}
-				_tmp0_ = FALSE;
+				_tmp1_ = FALSE;
 				if (!(i >= 0)) {
 					break;
 				}
-				if (g_utf8_get_char (g_utf8_offset_to_pointer (path, i)) == '/') {
+				_tmp2_ = string_get (path, i);
+				if (_tmp2_ == '/') {
 					result = l;
 					return result;
 				} else {
-					if (g_utf8_get_char (g_utf8_offset_to_pointer (path, i)) == '.') {
+					gchar _tmp3_;
+					_tmp3_ = string_get (path, i);
+					if (_tmp3_ == '.') {
 						result = i;
 						return result;
 					}
@@ -341,51 +424,81 @@ static gpointer _g_object_ref0 (gpointer self) {
 
 guint utils_get_window_workspace (GtkWindow* gtkwindow) {
 	guint result = 0U;
+	gboolean _tmp0_;
 	guint ret;
+	GdkWindow* _tmp1_ = NULL;
+	GdkWindow* _tmp2_;
 	GdkWindow* window;
+	GdkDisplay* _tmp3_ = NULL;
+	GdkDisplay* _tmp4_;
 	GdkDisplay* display;
+	Display* _tmp5_ = NULL;
 	Display* x_display;
 	Atom type;
 	gint format = 0;
 	gulong nitems = 0UL;
 	gulong bytes_after = 0UL;
 	guint* workspace = NULL;
+	XID _tmp6_;
+	Atom _tmp7_;
+	Atom _tmp8_;
+	gint _tmp9_;
+	gulong _tmp10_;
+	gulong _tmp11_;
+	void* _tmp12_ = NULL;
+	gint _tmp13_;
 	gint _result_;
+	gint _tmp14_;
 	gint err;
-	gboolean _tmp0_ = FALSE;
-	gboolean _tmp1_ = FALSE;
-	gboolean _tmp2_ = FALSE;
+	gboolean _tmp15_ = FALSE;
+	gboolean _tmp16_ = FALSE;
+	gboolean _tmp17_ = FALSE;
 	g_return_val_if_fail (gtkwindow != NULL, 0U);
-	g_return_val_if_fail (gtk_widget_get_realized ((GtkWidget*) gtkwindow), 0);
+	_tmp0_ = gtk_widget_get_realized ((GtkWidget*) gtkwindow);
+	g_return_val_if_fail (_tmp0_, 0);
 	ret = UTILS_ALL_WORKSPACES;
-	window = _g_object_ref0 (gtk_widget_get_window ((GtkWidget*) gtkwindow));
-	display = _g_object_ref0 (gdk_drawable_get_display ((GdkDrawable*) window));
-	x_display = gdk_x11_display_get_xdisplay (display);
+	_tmp1_ = gtk_widget_get_window ((GtkWidget*) gtkwindow);
+	_tmp2_ = _g_object_ref0 (_tmp1_);
+	window = _tmp2_;
+	_tmp3_ = gdk_drawable_get_display ((GdkDrawable*) window);
+	_tmp4_ = _g_object_ref0 (_tmp3_);
+	display = _tmp4_;
+	_tmp5_ = gdk_x11_display_get_xdisplay (display);
+	x_display = _tmp5_;
 	gdk_error_trap_push ();
-	_result_ = XGetWindowProperty (x_display, (Window) gdk_x11_drawable_get_xid ((GdkDrawable*) window), gdk_x11_get_xatom_by_name_for_display (display, "_NET_WM_DESKTOP"), (glong) 0, G_MAXLONG, FALSE, XA_CARDINAL, &type, &format, &nitems, &bytes_after, (unsigned char **) (&workspace));
-	err = gdk_error_trap_pop ();
+	_tmp6_ = gdk_x11_drawable_get_xid ((GdkDrawable*) window);
+	_tmp7_ = gdk_x11_get_xatom_by_name_for_display (display, "_NET_WM_DESKTOP");
+	_tmp13_ = XGetWindowProperty (x_display, (Window) _tmp6_, _tmp7_, (glong) 0, G_MAXLONG, FALSE, XA_CARDINAL, &_tmp8_, &_tmp9_, &_tmp10_, &_tmp11_, (unsigned char **) (&_tmp12_));
+	type = _tmp8_;
+	format = _tmp9_;
+	nitems = _tmp10_;
+	bytes_after = _tmp11_;
+	workspace = _tmp12_;
+	_result_ = _tmp13_;
+	_tmp14_ = gdk_error_trap_pop ();
+	err = _tmp14_;
 	if (err != Success) {
-		_tmp0_ = TRUE;
+		_tmp15_ = TRUE;
 	} else {
-		_tmp0_ = _result_ != Success;
+		_tmp15_ = _result_ != Success;
 	}
-	if (_tmp0_) {
+	if (_tmp15_) {
 		result = ret;
 		_g_object_unref0 (display);
 		_g_object_unref0 (window);
 		return result;
 	}
 	if (type == XA_CARDINAL) {
-		_tmp2_ = format == 32;
+		_tmp17_ = format == 32;
 	} else {
-		_tmp2_ = FALSE;
+		_tmp17_ = FALSE;
 	}
-	if (_tmp2_) {
-		_tmp1_ = nitems > 0;
+	if (_tmp17_) {
+		_tmp16_ = nitems > 0;
 	} else {
-		_tmp1_ = FALSE;
+		_tmp16_ = FALSE;
 	}
-	if (_tmp1_) {
+	if (_tmp16_) {
 		ret = workspace[0];
 	}
 	XFree (workspace);
@@ -398,9 +511,11 @@ guint utils_get_window_workspace (GtkWindow* gtkwindow) {
 
 GtkWidget* utils_add_scrollbar (GtkWidget* child) {
 	GtkWidget* result = NULL;
+	GtkScrolledWindow* _tmp0_ = NULL;
 	GtkScrolledWindow* scrollbar;
 	g_return_val_if_fail (child != NULL, NULL);
-	scrollbar = g_object_ref_sink ((GtkScrolledWindow*) gtk_scrolled_window_new (NULL, NULL));
+	_tmp0_ = (GtkScrolledWindow*) gtk_scrolled_window_new (NULL, NULL);
+	scrollbar = g_object_ref_sink (_tmp0_);
 	gtk_scrolled_window_set_policy (scrollbar, GTK_POLICY_AUTOMATIC, GTK_POLICY_AUTOMATIC);
 	gtk_container_add ((GtkContainer*) scrollbar, child);
 	result = (GtkWidget*) scrollbar;
@@ -408,13 +523,17 @@ GtkWidget* utils_add_scrollbar (GtkWidget* child) {
 }
 
 
-static char* bool_to_string (gboolean self) {
-	char* result = NULL;
+static gchar* bool_to_string (gboolean self) {
+	gchar* result = NULL;
 	if (self) {
-		result = g_strdup ("true");
+		gchar* _tmp0_;
+		_tmp0_ = g_strdup ("true");
+		result = _tmp0_;
 		return result;
 	} else {
-		result = g_strdup ("false");
+		gchar* _tmp1_;
+		_tmp1_ = g_strdup ("false");
+		result = _tmp1_;
 		return result;
 	}
 }
@@ -431,14 +550,20 @@ void utils_print_build_tool (BuildTool* build_tool) {
 		GList* build_job_it;
 		build_job_collection = (*build_tool).jobs;
 		for (build_job_it = build_job_collection; build_job_it != NULL; build_job_it = build_job_it->next) {
+			BuildJob _tmp0_;
 			BuildJob _tmp1_ = {0};
 			BuildJob build_job;
-			build_job = (build_job_copy ((BuildJob*) build_job_it->data, &_tmp1_), _tmp1_);
+			build_job_copy ((BuildJob*) build_job_it->data, &_tmp1_);
+			_tmp0_ = _tmp1_;
+			build_job = _tmp0_;
 			{
-				char* _tmp0_;
+				gchar* _tmp2_ = NULL;
+				gchar* _tmp3_;
 				fprintf (stdout, "== Build Job ==\n");
-				fprintf (stdout, "must succeed: %s\n", _tmp0_ = bool_to_string (build_job.must_succeed));
-				_g_free0 (_tmp0_);
+				_tmp2_ = bool_to_string (build_job.must_succeed);
+				_tmp3_ = _tmp2_;
+				fprintf (stdout, "must succeed: %s\n", _tmp3_);
+				_g_free0 (_tmp3_);
 				fprintf (stdout, "post processor: %s\n", build_job.post_processor);
 				fprintf (stdout, "command: %s\n\n", build_job.command);
 				build_job_destroy (&build_job);
@@ -451,24 +576,23 @@ void utils_print_build_tool (BuildTool* build_tool) {
 void utils_delete_file (GFile* file) {
 	GError * _inner_error_ = NULL;
 	g_return_if_fail (file != NULL);
-	{
-		g_file_delete (file, NULL, &_inner_error_);
-		if (_inner_error_ != NULL) {
-			goto __catch41_g_error;
-		}
+	g_file_delete (file, NULL, &_inner_error_);
+	if (_inner_error_ != NULL) {
+		goto __catch41_g_error;
 	}
 	goto __finally41;
 	__catch41_g_error:
 	{
 		GError * e;
+		gchar* _tmp0_ = NULL;
+		gchar* _tmp1_;
 		e = _inner_error_;
 		_inner_error_ = NULL;
-		{
-			char* _tmp0_;
-			fprintf (stderr, "Warning: delete file \"%s\" failed: %s\n", _tmp0_ = g_file_get_parse_name (file), e->message);
-			_g_free0 (_tmp0_);
-			_g_error_free0 (e);
-		}
+		_tmp0_ = g_file_get_parse_name (file);
+		_tmp1_ = _tmp0_;
+		fprintf (stderr, "Warning: delete file \"%s\" failed: %s\n", _tmp1_, e->message);
+		_g_free0 (_tmp1_);
+		_g_error_free0 (e);
 	}
 	__finally41:
 	if (_inner_error_ != NULL) {
@@ -481,12 +605,20 @@ void utils_delete_file (GFile* file) {
 
 gboolean utils_tree_model_iter_prev (GtkTreeModel* model, GtkTreeIter* iter) {
 	gboolean result = FALSE;
+	GtkTreePath* _tmp0_ = NULL;
 	GtkTreePath* path;
+	gboolean _tmp1_;
 	g_return_val_if_fail (model != NULL, FALSE);
-	path = gtk_tree_model_get_path (model, iter);
-	if (gtk_tree_path_prev (path)) {
+	_tmp0_ = gtk_tree_model_get_path (model, iter);
+	path = _tmp0_;
+	_tmp1_ = gtk_tree_path_prev (path);
+	if (_tmp1_) {
+		GtkTreeIter _tmp2_ = {0};
+		gboolean _tmp3_;
 		gboolean ret;
-		ret = gtk_tree_model_get_iter (model, iter, path);
+		_tmp3_ = gtk_tree_model_get_iter (model, &_tmp2_, path);
+		*iter = _tmp2_;
+		ret = _tmp3_;
 		result = ret;
 		_gtk_tree_path_free0 (path);
 		return result;
@@ -502,8 +634,12 @@ void utils_set_entry_error (GtkWidget* entry, gboolean _error_) {
 	if (_error_) {
 		GdkColor red = {0};
 		GdkColor white = {0};
-		gdk_color_parse ("#FF6666", &red);
-		gdk_color_parse ("white", &white);
+		GdkColor _tmp0_ = {0};
+		GdkColor _tmp1_ = {0};
+		gdk_color_parse ("#FF6666", &_tmp0_);
+		red = _tmp0_;
+		gdk_color_parse ("white", &_tmp1_);
+		white = _tmp1_;
 		gtk_widget_modify_base (entry, GTK_STATE_NORMAL, &red);
 		gtk_widget_modify_text (entry, GTK_STATE_NORMAL, &white);
 	} else {
@@ -514,54 +650,69 @@ void utils_set_entry_error (GtkWidget* entry, gboolean _error_) {
 
 
 gint utils_get_selected_row (GtkTreeView* view, GtkTreeIter* iter_to_set) {
+	GtkTreeIter _iter_to_set = {0};
 	gint result = 0;
+	GtkTreeSelection* _tmp0_ = NULL;
+	GtkTreeSelection* _tmp1_;
 	GtkTreeSelection* select;
 	GtkTreeIter iter = {0};
+	GtkTreeIter _tmp2_ = {0};
+	gboolean _tmp3_;
 	g_return_val_if_fail (view != NULL, 0);
-	select = _g_object_ref0 (gtk_tree_view_get_selection (view));
-	if (gtk_tree_selection_get_selected (select, NULL, &iter)) {
+	_tmp0_ = gtk_tree_view_get_selection (view);
+	_tmp1_ = _g_object_ref0 (_tmp0_);
+	select = _tmp1_;
+	_tmp3_ = gtk_tree_selection_get_selected (select, NULL, &_tmp2_);
+	iter = _tmp2_;
+	if (_tmp3_) {
+		GtkTreeModel* _tmp4_ = NULL;
+		GtkTreeModel* _tmp5_;
 		GtkTreeModel* model;
+		GtkTreePath* _tmp6_ = NULL;
 		GtkTreePath* path;
-		if ((iter_to_set) != NULL) {
-			*iter_to_set = iter;
+		gint* _tmp7_ = NULL;
+		if ((&_iter_to_set) != NULL) {
+			_iter_to_set = iter;
 		}
-		model = _g_object_ref0 (gtk_tree_view_get_model (view));
-		path = gtk_tree_model_get_path (model, &iter);
-		result = gtk_tree_path_get_indices (path)[0];
+		_tmp4_ = gtk_tree_view_get_model (view);
+		_tmp5_ = _g_object_ref0 (_tmp4_);
+		model = _tmp5_;
+		_tmp6_ = gtk_tree_model_get_path (model, &iter);
+		path = _tmp6_;
+		_tmp7_ = gtk_tree_path_get_indices (path);
+		result = _tmp7_[0];
 		_gtk_tree_path_free0 (path);
 		_g_object_unref0 (model);
 		_g_object_unref0 (select);
+		if (iter_to_set) {
+			*iter_to_set = _iter_to_set;
+		}
 		return result;
 	}
 	result = -1;
 	_g_object_unref0 (select);
+	if (iter_to_set) {
+		*iter_to_set = _iter_to_set;
+	}
 	return result;
 }
 
 
-GdkPixbuf* utils_get_pixbuf_from_stock (const char* stock_id, GtkIconSize size) {
+GdkPixbuf* utils_get_pixbuf_from_stock (const gchar* stock_id, GtkIconSize size) {
 	GdkPixbuf* result = NULL;
+	GtkInvisible* _tmp0_ = NULL;
 	GtkInvisible* w;
+	GdkPixbuf* _tmp1_ = NULL;
 	GdkPixbuf* pixbuf;
 	g_return_val_if_fail (stock_id != NULL, NULL);
-	w = g_object_ref_sink ((GtkInvisible*) gtk_invisible_new ());
-	pixbuf = gtk_widget_render_icon ((GtkWidget*) w, stock_id, size, "vala");
+	_tmp0_ = (GtkInvisible*) gtk_invisible_new ();
+	w = g_object_ref_sink (_tmp0_);
+	_tmp1_ = gtk_widget_render_icon ((GtkWidget*) w, stock_id, size, "vala");
+	pixbuf = _tmp1_;
 	result = pixbuf;
 	_g_object_unref0 (w);
 	return result;
 }
 
 
-static int _vala_strcmp0 (const char * str1, const char * str2) {
-	if (str1 == NULL) {
-		return -(str1 != str2);
-	}
-	if (str2 == NULL) {
-		return str1 != str2;
-	}
-	return strcmp (str1, str2);
-}
-
-
-
 



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