SF.net SVN: geany: [390] trunk/src/utils.c

eht16 at users.sourceforge.net eht16 at xxxxx
Fri Jun 2 14:05:04 UTC 2006


Revision: 390
Author:   eht16
Date:     2006-06-02 07:04:59 -0700 (Fri, 02 Jun 2006)
ViewCVS:  http://svn.sourceforge.net/geany/?rev=390&view=rev

Log Message:
-----------
added some sanity checks if filetype is NULL

Modified Paths:
--------------
    trunk/src/utils.c
Modified: trunk/src/utils.c
===================================================================
--- trunk/src/utils.c	2006-06-02 12:45:42 UTC (rev 389)
+++ trunk/src/utils.c	2006-06-02 14:04:59 UTC (rev 390)
@@ -197,7 +197,7 @@
 {
 	gboolean enable = FALSE;
 
-	if (idx == -1) enable = FALSE;
+	if (idx == -1 || doc_list[idx].file_type == NULL) enable = FALSE;
 	else if (doc_list[idx].file_type->id == GEANY_FILETYPES_C ||
 			 doc_list[idx].file_type->id == GEANY_FILETYPES_CPP)
 	{
@@ -652,7 +652,7 @@
 	}
 
 	// make all inactive, because there is no more tab left, or something strange occured
-	if (idx == -1 || ! doc_list[idx].file_type->has_tags)
+	if (idx == -1 || doc_list[idx].file_type == NULL || ! doc_list[idx].file_type->has_tags)
 	{
 		gtk_widget_set_sensitive(app->tagbar, FALSE);
 		gtk_container_add(GTK_CONTAINER(app->tagbar), app->default_tag_tree);
@@ -1254,7 +1254,7 @@
 	gchar *ext = NULL;
 	filetype *ft;
 
-	if (idx == -1)
+	if (idx == -1 || doc_list[idx].file_type == NULL)
 	{
 		gtk_widget_set_sensitive(lookup_widget(app->window, "menu_build1"), FALSE);
 		gtk_widget_set_sensitive(app->compile_button, FALSE);
@@ -1972,10 +1972,16 @@
 
 void utils_replace_filename(gint idx)
 {
-	gint pos = sci_get_current_position(doc_list[idx].sci);
-	gchar *filebase = g_strconcat(GEANY_STRING_UNTITLED, ".", (doc_list[idx].file_type)->extension, NULL);
-	gchar *filename = g_path_get_basename(doc_list[idx].file_name);
+	gint pos;
+	gchar *filebase;
+	gchar *filename;
 
+	if (idx == -1 || doc_list[idx].file_type == NULL) return;
+
+	pos = sci_get_current_position(doc_list[idx].sci);
+	filebase = g_strconcat(GEANY_STRING_UNTITLED, ".", (doc_list[idx].file_type)->extension, NULL);
+	filename = g_path_get_basename(doc_list[idx].file_name);
+
 	sci_set_current_position(doc_list[idx].sci, 0);
 	sci_set_search_anchor(doc_list[idx].sci);
 	// stop if filebase was not found
@@ -2283,7 +2289,9 @@
 	gint idx = document_get_cur_idx();
 	gint line = -1;
 
-	if (string == NULL || !doc_list[app->cur_idx].is_valid) return;
+	if (string == NULL || ! doc_list[app->cur_idx].is_valid ||
+		doc_list[app->cur_idx].file_type == NULL)
+		return;
 
 	// first get the line
 	switch (doc_list[app->cur_idx].file_type->id)


This was sent by the SourceForge.net collaborative development platform, the world's largest Open Source development site.




More information about the Commits mailing list