SF.net SVN: geany: [477] trunk/src
eht16 at users.sourceforge.net
eht16 at xxxxx
Sat Jun 24 18:46:16 UTC 2006
Revision: 477
Author: eht16
Date: 2006-06-24 11:46:08 -0700 (Sat, 24 Jun 2006)
ViewCVS: http://svn.sourceforge.net/geany/?rev=477&view=rev
Log Message:
-----------
Added some sanity checks to prevent crashes.
Modified Paths:
--------------
trunk/src/callbacks.c
trunk/src/dialogs.c
trunk/src/geany.h
trunk/src/keybindings.c
trunk/src/main.c
trunk/src/sci_cb.h
Modified: trunk/src/callbacks.c
===================================================================
--- trunk/src/callbacks.c 2006-06-24 18:43:56 UTC (rev 476)
+++ trunk/src/callbacks.c 2006-06-24 18:46:08 UTC (rev 477)
@@ -356,6 +356,7 @@
gpointer user_data)
{
gint idx = document_get_cur_idx();
+ if (idx == -1 || ! doc_list[idx].is_valid) return;
if (sci_can_undo(doc_list[idx].sci)) sci_undo(doc_list[idx].sci);
}
@@ -365,6 +366,7 @@
gpointer user_data)
{
gint idx = document_get_cur_idx();
+ if (idx == -1 || ! doc_list[idx].is_valid) return;
if (sci_can_redo(doc_list[idx].sci)) sci_redo(doc_list[idx].sci);
}
@@ -454,8 +456,11 @@
gpointer user_data)
{
gint idx = document_get_cur_idx();
- gchar *basename = g_path_get_basename(doc_list[idx].file_name);
+ gchar *basename;
+ if (idx == -1 || ! doc_list[idx].is_valid || doc_list[idx].file_name == NULL) return;
+
+ basename = g_path_get_basename(doc_list[idx].file_name);
if (dialogs_show_question(_
("Are you sure you want to reload '%s'?\nAny unsaved changes will be lost."),
basename))
@@ -605,7 +610,7 @@
gint idx = document_get_cur_idx();
static gboolean done = 1;
- if (doc_list[idx].is_valid)
+ if (idx >= 0 && doc_list[idx].is_valid)
{
if (done++ % 3 == 0) sci_set_line_numbers(doc_list[idx].sci, app->show_linenumber_margin,
(sci_get_zoom(doc_list[idx].sci) / 2));
@@ -619,7 +624,7 @@
gpointer user_data)
{
gint idx = document_get_cur_idx();
- if (doc_list[idx].is_valid)
+ if (idx >= 0 && doc_list[idx].is_valid)
{
if (sci_get_zoom(doc_list[idx].sci) == 0)
sci_set_line_numbers(doc_list[idx].sci, app->show_linenumber_margin, 0);
@@ -633,7 +638,7 @@
gpointer user_data)
{
gint idx = document_get_cur_idx();
- if (doc_list[idx].is_valid)
+ if (idx >= 0 && doc_list[idx].is_valid)
{
sci_zoom_off(doc_list[idx].sci);
sci_set_line_numbers(doc_list[idx].sci, app->show_linenumber_margin, 0);
@@ -2390,4 +2395,3 @@
utils_update_statusbar(idx, -1);
}
-
Modified: trunk/src/dialogs.c
===================================================================
--- trunk/src/dialogs.c 2006-06-24 18:43:56 UTC (rev 476)
+++ trunk/src/dialogs.c 2006-06-24 18:46:08 UTC (rev 477)
@@ -487,7 +487,7 @@
G_CALLBACK(gtk_widget_hide), NULL);
}
// We make sure the dialog is visible.
- gtk_window_present (GTK_WINDOW(app->open_colorsel));
+ gtk_window_present(GTK_WINDOW(app->open_colorsel));
#endif
}
@@ -879,6 +879,8 @@
gint idx = document_get_cur_idx();
gchar *sel = NULL;
+ if (idx == -1 || ! doc_list[idx].is_valid) return;
+
if (sci_get_lines_selected(doc_list[idx].sci) == 1)
{
sel = g_malloc(sci_get_selected_text_length(doc_list[idx].sci));
Modified: trunk/src/geany.h
===================================================================
--- trunk/src/geany.h 2006-06-24 18:43:56 UTC (rev 476)
+++ trunk/src/geany.h 2006-06-24 18:46:08 UTC (rev 477)
@@ -205,7 +205,7 @@
GtkWidget *redo_items[2];
GtkWidget *undo_items[2];
GtkWidget *save_buttons[2];
- GtkWidget *sensitive_buttons[31];
+ GtkWidget *sensitive_buttons[32];
GtkWidget *open_colorsel;
GtkWidget *open_fontsel;
GtkWidget *open_filesel;
Modified: trunk/src/keybindings.c
===================================================================
--- trunk/src/keybindings.c 2006-06-24 18:43:56 UTC (rev 476)
+++ trunk/src/keybindings.c 2006-06-24 18:46:08 UTC (rev 477)
@@ -340,7 +340,6 @@
return TRUE;
}
}
-
return FALSE;
}
@@ -464,18 +463,21 @@
static void cb_func_menu_foldall(void)
{
gint idx = document_get_cur_idx();
+ if (idx == -1 || ! doc_list[idx].is_valid) return;
document_fold_all(idx);
}
static void cb_func_menu_unfoldall(void)
{
gint idx = document_get_cur_idx();
+ if (idx == -1 || ! doc_list[idx].is_valid) return;
document_unfold_all(idx);
}
static void cb_func_build_compile(void)
{
gint idx = document_get_cur_idx();
+ if (idx == -1 || ! doc_list[idx].is_valid) return;
if (doc_list[idx].file_type->menu_items->can_compile && doc_list[idx].file_name != NULL)
on_build_compile_activate(NULL, NULL);
}
@@ -483,6 +485,7 @@
static void cb_func_build_link(void)
{
gint idx = document_get_cur_idx();
+ if (idx == -1 || ! doc_list[idx].is_valid) return;
if (doc_list[idx].file_type->menu_items->can_link && doc_list[idx].file_name != NULL)
on_build_build_activate(NULL, NULL);
}
@@ -490,6 +493,7 @@
static void cb_func_build_make(void)
{
gint idx = document_get_cur_idx();
+ if (idx == -1 || ! doc_list[idx].is_valid) return;
if (doc_list[idx].file_name != NULL)
on_build_make_activate(NULL, GINT_TO_POINTER(0));
}
@@ -497,6 +501,7 @@
static void cb_func_build_makeowntarget(void)
{
gint idx = document_get_cur_idx();
+ if (idx == -1 || ! doc_list[idx].is_valid) return;
if (doc_list[idx].file_name != NULL)
on_build_make_activate(NULL, GINT_TO_POINTER(1));
}
@@ -504,6 +509,7 @@
static void cb_func_build_run(void)
{
gint idx = document_get_cur_idx();
+ if (idx == -1 || ! doc_list[idx].is_valid) return;
if (doc_list[idx].file_type->menu_items->can_exec && doc_list[idx].file_name != NULL)
on_build_execute_activate(NULL, GINT_TO_POINTER(0));
}
@@ -511,6 +517,7 @@
static void cb_func_build_run2(void)
{
gint idx = document_get_cur_idx();
+ if (idx == -1 || ! doc_list[idx].is_valid) return;
if (doc_list[idx].file_type->menu_items->can_exec && doc_list[idx].file_name != NULL)
on_build_execute_activate(NULL, GINT_TO_POINTER(1));
}
@@ -518,6 +525,7 @@
static void cb_func_build_options(void)
{
gint idx = document_get_cur_idx();
+ if (idx == -1 || ! doc_list[idx].is_valid) return;
if ((doc_list[idx].file_type->menu_items->can_compile ||
doc_list[idx].file_type->menu_items->can_link ||
doc_list[idx].file_type->menu_items->can_exec) &&
@@ -528,6 +536,7 @@
static void cb_func_reloadtaglist(void)
{
gint idx = document_get_cur_idx();
+ if (idx == -1 || ! doc_list[idx].is_valid) return;
document_update_tag_list(idx, TRUE);
}
@@ -585,6 +594,7 @@
static void cb_func_switch_editor(void)
{
gint idx = document_get_cur_idx();
+ if (idx == -1 || ! doc_list[idx].is_valid) return;
gtk_widget_grab_focus(GTK_WIDGET(doc_list[idx].sci));
}
@@ -641,6 +651,7 @@
static void cb_func_edit_duplicateline(void)
{
gint idx = document_get_cur_idx();
+ if (idx == -1 || ! doc_list[idx].is_valid) return;
if (sci_can_copy(doc_list[idx].sci))
sci_selection_duplicate(doc_list[idx].sci);
else
@@ -650,30 +661,35 @@
static void cb_func_edit_commentline(void)
{
gint idx = document_get_cur_idx();
+ if (idx == -1 || ! doc_list[idx].is_valid) return;
sci_cb_do_comment(idx);
}
static void cb_func_edit_autocomplete(void)
{
gint idx = document_get_cur_idx();
+ if (idx == -1 || ! doc_list[idx].is_valid) return;
sci_cb_start_auto_complete(doc_list[idx].sci, sci_get_current_position(doc_list[idx].sci));
}
static void cb_func_edit_calltip(void)
{
gint idx = document_get_cur_idx();
+ if (idx == -1 || ! doc_list[idx].is_valid) return;
sci_cb_show_calltip(doc_list[idx].sci, -1);
}
static void cb_func_edit_macrolist(void)
{
gint idx = document_get_cur_idx();
+ if (idx == -1 || ! doc_list[idx].is_valid) return;
sci_cb_show_macro_list(doc_list[idx].sci);
}
static void cb_func_edit_suppresscompletion(void)
{
gint idx = document_get_cur_idx();
+ if (idx == -1 || ! doc_list[idx].is_valid) return;
sci_add_text(doc_list[idx].sci, " ");
}
Modified: trunk/src/main.c
===================================================================
--- trunk/src/main.c 2006-06-24 18:43:56 UTC (rev 476)
+++ trunk/src/main.c 2006-06-24 18:46:08 UTC (rev 477)
@@ -291,21 +291,22 @@
app->sensitive_buttons[13] = lookup_widget(app->window, "menu_count_words1");
app->sensitive_buttons[14] = lookup_widget(app->window, "menu_build1");
app->sensitive_buttons[15] = lookup_widget(app->window, "add_comments1");
- app->sensitive_buttons[16] = lookup_widget(app->window, "find1");
- app->sensitive_buttons[17] = lookup_widget(app->window, "find_next1");
- app->sensitive_buttons[18] = lookup_widget(app->window, "replace1");
- app->sensitive_buttons[19] = lookup_widget(app->window, "menu_paste1");
- app->sensitive_buttons[20] = lookup_widget(app->window, "menu_undo2");
- app->sensitive_buttons[21] = lookup_widget(app->window, "preferences2");
- app->sensitive_buttons[22] = lookup_widget(app->window, "revert1");
- app->sensitive_buttons[23] = lookup_widget(app->window, "menu_item4");
- app->sensitive_buttons[24] = lookup_widget(app->window, "menu_markers_margin1");
- app->sensitive_buttons[25] = lookup_widget(app->window, "menu_linenumber_margin1");
- app->sensitive_buttons[26] = lookup_widget(app->window, "menu_choose_color1");
- app->sensitive_buttons[27] = lookup_widget(app->window, "menu_zoom_in1");
- app->sensitive_buttons[28] = lookup_widget(app->window, "menu_zoom_out1");
- app->sensitive_buttons[29] = lookup_widget(app->window, "normal_size1");
- app->sensitive_buttons[30] = lookup_widget(app->window, "toolbutton24");
+ app->sensitive_buttons[16] = lookup_widget(app->window, "search1");
+ app->sensitive_buttons[17] = lookup_widget(app->window, "menu_paste1");
+ app->sensitive_buttons[18] = lookup_widget(app->window, "menu_undo2");
+ app->sensitive_buttons[19] = lookup_widget(app->window, "preferences2");
+ app->sensitive_buttons[20] = lookup_widget(app->window, "revert1");
+ app->sensitive_buttons[21] = lookup_widget(app->window, "menu_item4");
+ app->sensitive_buttons[22] = lookup_widget(app->window, "menu_markers_margin1");
+ app->sensitive_buttons[23] = lookup_widget(app->window, "menu_linenumber_margin1");
+ app->sensitive_buttons[24] = lookup_widget(app->window, "menu_choose_color1");
+ app->sensitive_buttons[25] = lookup_widget(app->window, "menu_zoom_in1");
+ app->sensitive_buttons[26] = lookup_widget(app->window, "menu_zoom_out1");
+ app->sensitive_buttons[27] = lookup_widget(app->window, "normal_size1");
+ app->sensitive_buttons[28] = lookup_widget(app->window, "toolbutton24");
+ app->sensitive_buttons[29] = lookup_widget(app->window, "toolbutton25");
+ app->sensitive_buttons[30] = lookup_widget(app->window, "entry_goto_line");
+ app->sensitive_buttons[31] = lookup_widget(app->window, "treeview6");
app->redo_items[0] = lookup_widget(app->popup_menu, "redo1");
app->redo_items[1] = lookup_widget(app->window, "menu_redo2");
app->undo_items[0] = lookup_widget(app->popup_menu, "undo1");
Modified: trunk/src/sci_cb.h
===================================================================
--- trunk/src/sci_cb.h 2006-06-24 18:43:56 UTC (rev 476)
+++ trunk/src/sci_cb.h 2006-06-24 18:46:08 UTC (rev 477)
@@ -40,8 +40,6 @@
gboolean sci_cb_handle_xml(ScintillaObject *sci, gchar ch);
-gboolean sci_cb_handle_uri(ScintillaObject *sci, gint pos);
-
gboolean sci_cb_show_calltip(ScintillaObject *sci, gint pos);
void sci_cb_do_comment(gint idx);
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