[geany/geany-plugins] 668505: debugger: Don't mix declaration and code for C89 compliance
Colomban Wendling
git-noreply at xxxxx
Fri Jun 8 16:37:19 UTC 2012
Branch: refs/heads/master
Author: Colomban Wendling <ban at herbesfolles.org>
Committer: Colomban Wendling <ban at herbesfolles.org>
Date: Fri, 08 Jun 2012 16:37:19
Commit: 66850521254776ac36a51051d1a6295e2eac8c82
https://github.com/geany/geany-plugins/commit/66850521254776ac36a51051d1a6295e2eac8c82
Log Message:
-----------
debugger: Don't mix declaration and code for C89 compliance
Modified Paths:
--------------
debugger/src/bptree.c
debugger/src/breakpoints.c
debugger/src/callbacks.c
debugger/src/cell_renderers/cellrendererbreakicon.c
debugger/src/cell_renderers/cellrendererframeicon.c
debugger/src/dbm_gdb.c
debugger/src/dconfig.c
debugger/src/debug.c
debugger/src/dpaned.c
debugger/src/envtree.c
debugger/src/keys.c
debugger/src/plugin.c
debugger/src/stree.c
debugger/src/tpage.c
debugger/src/vtree.c
debugger/src/watch_model.c
debugger/src/wtree.c
Modified: debugger/src/bptree.c
164 files changed, 89 insertions(+), 75 deletions(-)
===================================================================
@@ -84,7 +84,6 @@ enum
GtkTreeRowReference* get_unselected_sibling(GtkTreePath *path)
{
GtkTreeRowReference *sibling = NULL;
-
GtkTreeSelection *selection = gtk_tree_view_get_selection(GTK_TREE_VIEW(tree));
/* move down find first unselected sibling */
@@ -156,18 +155,18 @@ static gboolean on_query_tooltip(GtkWidget *widget, gint x, gint y, gboolean key
{
gboolean show = FALSE;
int bx, by;
- gtk_tree_view_convert_widget_to_bin_window_coords(GTK_TREE_VIEW(widget), x, y, &bx, &by);
-
GtkTreePath *tpath = NULL;
GtkTreeViewColumn *column = NULL;
+
+ gtk_tree_view_convert_widget_to_bin_window_coords(GTK_TREE_VIEW(widget), x, y, &bx, &by);
if (gtk_tree_view_get_path_at_pos(GTK_TREE_VIEW(widget), bx, by, &tpath, &column, NULL, NULL))
{
if (1 == gtk_tree_path_get_depth(tpath) && column == gtk_tree_view_get_column(GTK_TREE_VIEW(widget), FILEPATH))
{
GtkTreeIter iter;
- gtk_tree_model_get_iter(model, &iter, tpath);
-
gchar *path = NULL;
+
+ gtk_tree_model_get_iter(model, &iter, tpath);
gtk_tree_model_get(model, &iter, FILEPATH, &path, -1);
gtk_tooltip_set_text(tooltip, path);
@@ -189,9 +188,11 @@ static void on_render_filename(GtkTreeViewColumn *tree_column, GtkCellRenderer *
GtkTreeIter *iter, gpointer data)
{
gchar *path = NULL;
+ GtkTreePath *tpath;
+
gtk_tree_model_get(model, iter, FILEPATH, &path, -1);
- GtkTreePath *tpath = gtk_tree_model_get_path(model, iter);
+ tpath = gtk_tree_model_get_path(model, iter);
if (1 != gtk_tree_path_get_depth(tpath))
{
g_object_set(cell, "text", path, NULL);
@@ -258,21 +259,20 @@ void on_render(GtkTreeViewColumn *tree_column, GtkCellRenderer *cell, GtkTreeMod
*/
static void on_row_double_click(GtkTreeView *tree_view, GtkTreePath *path, GtkTreeViewColumn *column, gpointer user_data)
{
+ GtkTreeIter iter, parent_iter;
+ gchar *file;
+ int line;
+
if (1 == gtk_tree_path_get_depth(path))
{
return;
}
- GtkTreeIter iter;
gtk_tree_model_get_iter (
model,
&iter,
path);
-
- gchar *file;
- int line;
- GtkTreeIter parent_iter;
gtk_tree_model_iter_parent(model, &parent_iter, &iter);
gtk_tree_model_get (
@@ -298,26 +298,25 @@ static void on_row_double_click(GtkTreeView *tree_view, GtkTreePath *path, GtkTr
*/
void on_condition_changed(GtkCellRendererText *renderer, gchar *path, gchar *new_text, gpointer user_data)
{
- GtkTreeIter iter;
- GtkTreePath *tree_path = gtk_tree_path_new_from_string (path);
+ gchar *file;
+ int line;
+ gchar* oldcondition;
+ GtkTreeIter iter, parent_iter;
+ GtkTreePath *tree_path = gtk_tree_path_new_from_string (path);
gtk_tree_model_get_iter (
model,
&iter,
tree_path);
- GtkTreeIter parent_iter;
gtk_tree_model_iter_parent(model, &parent_iter, &iter);
- gchar *file;
gtk_tree_model_get (
model,
&parent_iter,
FILEPATH, &file,
-1);
- int line;
- gchar* oldcondition;
gtk_tree_model_get (
model,
&iter,
@@ -338,30 +337,31 @@ void on_condition_changed(GtkCellRendererText *renderer, gchar *path, gchar *new
*/
void on_hitscount_changed(GtkCellRendererText *renderer, gchar *path, gchar *new_text, gpointer user_data)
{
+ GtkTreeIter iter, parent_iter;
+ GtkTreePath *tree_path;
+ gchar *file;
+ int line;
+ gint oldcount;
int count = atoi(new_text);
+
if (!count && strcmp(new_text, "0"))
return;
- GtkTreeIter iter;
- GtkTreePath *tree_path = gtk_tree_path_new_from_string (path);
+ tree_path = gtk_tree_path_new_from_string (path);
gtk_tree_model_get_iter (
model,
&iter,
tree_path);
- GtkTreeIter parent_iter;
gtk_tree_model_iter_parent(model, &parent_iter, &iter);
- gchar *file;
gtk_tree_model_get (
model,
&parent_iter,
FILEPATH, &file,
-1);
- int line;
- gint oldcount;
gtk_tree_model_get (
model,
&iter,
@@ -381,19 +381,22 @@ void on_hitscount_changed(GtkCellRendererText *renderer, gchar *path, gchar *new
*/
void on_enable_for_file(GtkCellRendererToggle *cell_renderer, gchar *path, gpointer user_data)
{
+ GtkTreeIter iter;
+ GtkTreePath *tree_path;
+ gboolean current_state;
+
/* do not process event is page is readonly (debug is running) */
if (readonly)
return;
- GtkTreeIter iter;
- GtkTreePath *tree_path = gtk_tree_path_new_from_string (path);
+ tree_path = gtk_tree_path_new_from_string (path);
gtk_tree_model_get_iter (
model,
&iter,
tree_path);
- gboolean current_state = gtk_cell_renderer_toggle_get_active(cell_renderer);
+ current_state = gtk_cell_renderer_toggle_get_active(cell_renderer);
/* check if this is a file row */
if(1 == gtk_tree_path_get_depth(tree_path))
@@ -418,12 +421,14 @@ void on_enable_for_file(GtkCellRendererToggle *cell_renderer, gchar *path, gpoin
*/
void on_enable_break(CellRendererBreakIcon *cell_renderer, gchar *path, gpointer user_data)
{
+ GtkTreeIter iter;
+ GtkTreePath *tree_path;
+
/* do not process event is page is readonly (debug is running) */
if (readonly)
return;
- GtkTreeIter iter;
- GtkTreePath *tree_path = gtk_tree_path_new_from_string (path);
+ tree_path = gtk_tree_path_new_from_string (path);
gtk_tree_model_get_iter (
model,
@@ -433,11 +438,11 @@ void on_enable_break(CellRendererBreakIcon *cell_renderer, gchar *path, gpointer
/* check if this is not a file row */
if(1 != gtk_tree_path_get_depth(tree_path))
{
- GtkTreeIter parent_iter;
- gtk_tree_model_iter_parent(model, &parent_iter, &iter);
-
gchar *file;
int line;
+ GtkTreeIter parent_iter;
+
+ gtk_tree_model_iter_parent(model, &parent_iter, &iter);
gtk_tree_model_get (
model,
@@ -463,24 +468,28 @@ void on_enable_break(CellRendererBreakIcon *cell_renderer, gchar *path, gpointer
*/
static gboolean on_key_pressed(GtkWidget *widget, GdkEvent *event, gpointer user_data)
{
+ guint keyval = ((GdkEventKey*)event)->keyval;
+ GtkTreeSelection *selection;
+ GList *rows;
+
/* do not process event is page is readonly (debug is running) */
if (readonly)
return FALSE;
- guint keyval = ((GdkEventKey*)event)->keyval;
-
/* get selected rows */
- GtkTreeSelection *selection = gtk_tree_view_get_selection(GTK_TREE_VIEW(tree));
- GList *rows = gtk_tree_selection_get_selected_rows(selection, &model);
+ selection = gtk_tree_view_get_selection(GTK_TREE_VIEW(tree));
+ rows = gtk_tree_selection_get_selected_rows(selection, &model);
rows = g_list_sort(rows, (GCompareFunc)gtk_tree_path_compare);
if (keyval == GDK_Delete && rows && g_list_length(rows))
{
+ GList *breaks, *iter;
+ GtkTreeRowReference *new_selection = NULL;
+ GtkTreePath *first_path = (GtkTreePath*)rows->data;
+
/* "delete selected rows" */
/* get new selection */
- GtkTreeRowReference *new_selection = NULL;
- GtkTreePath *first_path = (GtkTreePath*)rows->data;
if (gtk_tree_path_get_depth(first_path) > 1)
{
new_selection = get_unselected_sibling(first_path);
@@ -498,13 +507,12 @@ static gboolean on_key_pressed(GtkWidget *widget, GdkEvent *event, gpointer user
/* collect GList of breakpoints to remove
if file row is met - add all unselected breaks to the list as well */
- GList *iter = rows;
- GList *breaks = NULL;
- while (iter)
+ breaks = NULL;
+ for (iter = rows; iter; iter = iter->next)
{
GtkTreePath *path = (GtkTreePath*)iter->data;
-
GtkTreeIter titer;
+
gtk_tree_model_get_iter(model, &titer, path);
if (1 == gtk_tree_path_get_depth(path))
@@ -518,11 +526,12 @@ static gboolean on_key_pressed(GtkWidget *widget, GdkEvent *event, gpointer user
{
gchar *file = NULL;
gint line;
+ breakpoint *bp;
gtk_tree_model_get(model, &titer, FILEPATH, &file, -1);
gtk_tree_model_get(model, &citer, LINE, &line, -1);
- breakpoint *bp = breaks_lookup_breakpoint(file, line);
+ bp = breaks_lookup_breakpoint(file, line);
breaks = g_list_append(breaks, bp);
@@ -534,21 +543,22 @@ static gboolean on_key_pressed(GtkWidget *widget, GdkEvent *event, gpointer user
else
{
GtkTreeIter piter;
+ gchar *file = NULL;
+ gint line;
+ breakpoint *bp;
+
gtk_tree_model_iter_parent(model, &piter, &titer);
- gchar *file = NULL;
gtk_tree_model_get(model, &piter, FILEPATH, &file, -1);
- gint line;
gtk_tree_model_get(model, &titer, LINE, &line, -1);
- breakpoint *bp = breaks_lookup_breakpoint(file, line);
+ bp = breaks_lookup_breakpoint(file, line);
breaks = g_list_append(breaks, bp);
g_free(file);
}
- iter = iter->next;
}
if (1 == g_list_length(breaks))
@@ -594,6 +604,10 @@ static gboolean on_key_pressed(GtkWidget *widget, GdkEvent *event, gpointer user
*/
gboolean bptree_init(move_to_line_cb cb)
{
+ GtkTreeSelection *selection;
+ GtkTreeViewColumn *column;
+ GtkCellRenderer *renderer;
+
/* save double click callback */
on_break_clicked = cb;
@@ -622,7 +636,7 @@ gboolean bptree_init(move_to_line_cb cb)
gtk_tree_view_set_headers_visible(GTK_TREE_VIEW(tree), 1);
gtk_widget_set_has_tooltip(GTK_WIDGET(tree), TRUE);
/* multiple selection */
- GtkTreeSelection *selection = gtk_tree_view_get_selection(GTK_TREE_VIEW(tree));
+ selection = gtk_tree_view_get_selection(GTK_TREE_VIEW(tree));
gtk_tree_selection_set_mode(selection, GTK_SELECTION_MULTIPLE);
/* connect signals */
@@ -631,33 +645,32 @@ gboolean bptree_init(move_to_line_cb cb)
g_signal_connect(G_OBJECT(tree), "query-tooltip", G_CALLBACK (on_query_tooltip), NULL);
/* creating columns */
- GtkTreeViewColumn *column;
/* icon, file */
- GtkCellRenderer *renderer = gtk_cell_renderer_text_new ();
+ renderer = gtk_cell_renderer_text_new ();
column = gtk_tree_view_column_new();
gtk_tree_view_column_pack_end(column, renderer, TRUE);
gtk_tree_view_column_set_cell_data_func(column, renderer, on_render_filename, NULL, NULL);
-
+
/* enable for file */
- GtkCellRenderer *file_enable_renderer = cell_renderer_toggle_new ();
- g_signal_connect (G_OBJECT(file_enable_renderer), "toggled", G_CALLBACK(on_enable_for_file), NULL);
- gtk_tree_view_column_pack_end(column, file_enable_renderer, FALSE);
- gtk_tree_view_column_set_attributes(column, file_enable_renderer, "active", ENABLED, NULL);
- gtk_tree_view_column_set_cell_data_func(column, file_enable_renderer, on_render_enable_for_file, NULL, NULL);
+ renderer = cell_renderer_toggle_new ();
+ g_signal_connect (G_OBJECT(renderer), "toggled", G_CALLBACK(on_enable_for_file), NULL);
+ gtk_tree_view_column_pack_end(column, renderer, FALSE);
+ gtk_tree_view_column_set_attributes(column, renderer, "active", ENABLED, NULL);
+ gtk_tree_view_column_set_cell_data_func(column, renderer, on_render_enable_for_file, NULL, NULL);
/* enable breakpoint */
- GtkCellRenderer *break_enable_renderer = cell_renderer_break_icon_new ();
- g_signal_connect (G_OBJECT(break_enable_renderer), "clicked", G_CALLBACK(on_enable_break), NULL);
+ renderer = cell_renderer_break_icon_new ();
+ g_signal_connect (G_OBJECT(renderer), "clicked", G_CALLBACK(on_enable_break), NULL);
- g_object_set(break_enable_renderer, "pixbuf_enabled", (gpointer)break_pixbuf, NULL);
- g_object_set(break_enable_renderer, "pixbuf_disabled", (gpointer)break_disabled_pixbuf, NULL);
- g_object_set(break_enable_renderer, "pixbuf_conditional", (gpointer)break_condition_pixbuf, NULL);
- g_object_set(break_enable_renderer, "pixbuf_file", (gpointer)break_pixbuf, NULL);
+ g_object_set(renderer, "pixbuf_enabled", (gpointer)break_pixbuf, NULL);
+ g_object_set(renderer, "pixbuf_disabled", (gpointer)break_disabled_pixbuf, NULL);
+ g_object_set(renderer, "pixbuf_conditional", (gpointer)break_condition_pixbuf, NULL);
+ g_object_set(renderer, "pixbuf_file", (gpointer)break_pixbuf, NULL);
- gtk_tree_view_column_pack_end(column, break_enable_renderer, FALSE);
- gtk_tree_view_column_set_attributes(column, break_enable_renderer, "enabled", ENABLED, "condition", CONDITION, "hitscount", HITSCOUNT, NULL);
- gtk_tree_view_column_set_cell_data_func(column, break_enable_renderer, on_render_enable_break, NULL, NULL);
+ gtk_tree_view_column_pack_end(column, renderer, FALSE);
+ gtk_tree_view_column_set_attributes(column, renderer, "enabled", ENABLED, "condition", CONDITION, "hitscount", HITSCOUNT, NULL);
+ gtk_tree_view_column_set_cell_data_func(column, renderer, on_render_enable_break, NULL, NULL);
gtk_tree_view_column_set_title(column, _("Location"));
gtk_tree_view_column_set_resizable (column, TRUE);
@@ -675,9 +688,8 @@ gboolean bptree_init(move_to_line_cb cb)
/* hits count */
hcount_renderer = gtk_cell_renderer_spin_new ();
- GtkAdjustment* adj = GTK_ADJUSTMENT (gtk_adjustment_new (0.0, 0.0, 100000.0, 1.0, 2.0, 2.0));
g_object_set (hcount_renderer,
- "adjustment", adj,
+ "adjustment", gtk_adjustment_new (0.0, 0.0, 100000.0, 1.0, 2.0, 2.0),
"digits", 0, NULL);
g_signal_connect (G_OBJECT (hcount_renderer), "edited", G_CALLBACK (on_hitscount_changed), NULL);
column = gtk_tree_view_column_new_with_attributes (_("Hit count"), hcount_renderer, "text", HITSCOUNT, NULL);
@@ -721,9 +733,10 @@ void bptree_destroy(void)
*/
void bptree_set_enabled(breakpoint *bp)
{
+ GtkTreeIter parent;
+
gtk_tree_store_set(store, &(bp->iter), ENABLED, bp->enabled, -1);
- GtkTreeIter parent;
gtk_tree_model_iter_parent(model, &parent, &(bp->iter));
update_file_node(&parent);
}
@@ -756,7 +769,7 @@ void bptree_set_condition(breakpoint* bp)
*/
gchar* bptree_get_condition(breakpoint *bp)
{
- gchar *condition;
+ gchar *condition;
gtk_tree_model_get (
model,
&(bp->iter),
@@ -785,17 +798,20 @@ void bptree_set_readonly(gboolean value)
*/
void bptree_add_breakpoint(breakpoint* bp)
{
- GtkTreeIter file_iter;
+ GtkTreeIter file_iter, iter, child, *sibling = NULL;
GtkTreeRowReference *file_reference = (GtkTreeRowReference*)g_hash_table_lookup(files, bp->file);
+
if (!file_reference)
{
+ GtkTreePath *file_path;
+
gtk_tree_store_prepend (store, &file_iter, NULL);
gtk_tree_store_set (store, &file_iter,
FILEPATH, bp->file,
ENABLED, TRUE,
-1);
- GtkTreePath *file_path = gtk_tree_model_get_path(model, &file_iter);
+ file_path = gtk_tree_model_get_path(model, &file_iter);
file_reference = gtk_tree_row_reference_new(model, file_path);
gtk_tree_path_free(file_path);
@@ -809,7 +825,6 @@ void bptree_add_breakpoint(breakpoint* bp)
}
/* lookup where to insert new row */
- GtkTreeIter child, *sibling = NULL;
if(gtk_tree_model_iter_children(model, &child, &file_iter))
{
do
@@ -829,11 +844,10 @@ void bptree_add_breakpoint(breakpoint* bp)
while(gtk_tree_model_iter_next(model, &child));
}
- GtkTreeIter iter;
gtk_tree_store_insert_before(store, &iter, &file_iter, sibling);
- bp->iter = iter;
-
- bptree_update_breakpoint(bp);
+ bp->iter = iter;
+
+ bptree_update_breakpoint(bp);
}
/*
Modified: debugger/src/breakpoints.c
40 files changed, 25 insertions(+), 15 deletions(-)
===================================================================
@@ -96,12 +96,14 @@ static void on_add(breakpoint *bp)
}
static void on_remove(breakpoint *bp)
{
+ GTree *tree;
+
/* remove marker */
markers_remove_breakpoint(bp);
/* remove from breakpoints tab */
bptree_remove_breakpoint(bp);
/* remove from internal storage */
- GTree *tree = g_hash_table_lookup(files, bp->file);
+ tree = g_hash_table_lookup(files, bp->file);
g_tree_remove(tree, GINT_TO_POINTER(bp->line));
}
static void on_set_hits_count(breakpoint *bp)
@@ -360,17 +362,19 @@ void breaks_destroy(void)
*/
void breaks_add(const char* file, int line, char* condition, int enabled, int hitscount)
{
+ GTree *tree;
+ breakpoint* bp;
+ enum dbs state = debug_get_state();
+
/* do not process async break manipulation on modules
that do not support async interuppt */
- enum dbs state = debug_get_state();
if (DBS_RUNNING == state && !debug_supports_async_breaks())
return;
/* allocate memory */
- breakpoint* bp = break_new_full(file, line, condition, enabled, hitscount);
+ bp = break_new_full(file, line, condition, enabled, hitscount);
/* check whether GTree for this file exists and create if doesn't */
- GTree *tree;
if (!(tree = g_hash_table_lookup(files, bp->file)))
{
char *newfile = g_strdup(bp->file);
@@ -402,14 +406,15 @@ void breaks_add(const char* file, int line, char* condition, int enabled, int hi
*/
void breaks_remove(const char* file, int line)
{
+ breakpoint* bp = NULL;
+ enum dbs state = debug_get_state();
+
/* do not process async break manipulation on modules
that do not support async interuppt */
- enum dbs state = debug_get_state();
if (DBS_RUNNING == state && !debug_supports_async_breaks())
return;
/* lookup for breakpoint */
- breakpoint* bp = NULL;
if (!(bp = breaks_lookup_breakpoint(file, line)))
return;
@@ -472,13 +477,15 @@ void breaks_remove_all(void)
*/
void breaks_set_enabled_for_file(const char *file, gboolean enabled)
{
+ GList *breaks;
+ enum dbs state = debug_get_state();
+
/* do not process async break manipulation on modules
that do not support async interuppt */
- enum dbs state = debug_get_state();
if (DBS_RUNNING == state && !debug_supports_async_breaks())
return;
- GList *breaks = breaks_get_for_document(file);
+ breaks = breaks_get_for_document(file);
/* handle switching instantly if debugger is idle or stopped
and request debug module interruption overwise */
@@ -502,14 +509,15 @@ void breaks_set_enabled_for_file(const char *file, gboolean enabled)
*/
void breaks_switch(const char* file, int line)
{
+ breakpoint* bp = NULL;
+ enum dbs state = debug_get_state();
+
/* do not process async break manipulation on modules
that do not support async interuppt */
- enum dbs state = debug_get_state();
if (DBS_RUNNING == state && !debug_supports_async_breaks())
return;
/* lookup for breakpoint */
- breakpoint* bp = NULL;
if (!(bp = breaks_lookup_breakpoint(file, line)))
return;
@@ -538,14 +546,15 @@ void breaks_switch(const char* file, int line)
*/
void breaks_set_hits_count(const char* file, int line, int count)
{
+ breakpoint* bp = NULL;
+ enum dbs state = debug_get_state();
+
/* do not process async break manipulation on modules
that do not support async interuppt */
- enum dbs state = debug_get_state();
if (DBS_RUNNING == state && !debug_supports_async_breaks())
return;
/* lookup for breakpoint */
- breakpoint* bp = NULL;
if (!(bp = breaks_lookup_breakpoint(file, line)))
return;
@@ -574,14 +583,15 @@ void breaks_set_hits_count(const char* file, int line, int count)
*/
void breaks_set_condition(const char* file, int line, const char* condition)
{
+ breakpoint* bp = NULL;
+ enum dbs state = debug_get_state();
+
/* do not process async break manipulation on modules
that do not support async interuppt */
- enum dbs state = debug_get_state();
if (DBS_RUNNING == state && !debug_supports_async_breaks())
return;
/* lookup for breakpoint */
- breakpoint* bp = NULL;
if (!(bp = breaks_lookup_breakpoint(file, line)))
return;
@@ -637,9 +647,9 @@ void breaks_move_to_line(const char* file, int line_from, int line_to)
break_state breaks_get_state(const char* file, int line)
{
break_state bs = BS_NOT_SET;
+ GTree *tree;
/* first look for the tree for the given file */
- GTree *tree;
if ( (tree = g_hash_table_lookup(files, file)) )
{
breakpoint *bp = g_tree_lookup(tree, GINT_TO_POINTER(line));
Modified: debugger/src/callbacks.c
15 files changed, 10 insertions(+), 5 deletions(-)
===================================================================
@@ -188,13 +188,17 @@ gboolean on_editor_notify(
{
case SCN_MARGINCLICK:
{
+ char* file;
+ int line;
+ break_state bs;
+
if (!editor->document->real_path || 1 != nt->margin)
break;
- char* file = editor->document->file_name;
- int line = sci_get_line_from_position(editor->sci, nt->position) + 1;
+ file = editor->document->file_name;
+ line = sci_get_line_from_position(editor->sci, nt->position) + 1;
- break_state bs = breaks_get_state(file, line);
+ bs = breaks_get_state(file, line);
if (BS_NOT_SET == bs)
breaks_add(file, line, NULL, TRUE, 0);
else if (BS_ENABLED == bs)
@@ -208,12 +212,13 @@ gboolean on_editor_notify(
}
case SCN_DWELLSTART:
{
+ GString *word;
+
if (DBS_STOPPED != debug_get_state ())
break;
/* get a word under the cursor */
- GString *word = get_word_at_position(editor->sci, nt->position);
-
+ word = get_word_at_position(editor->sci, nt->position);
if (word->len)
{
gchar *calltip = debug_get_calltip_for_expression(word->str);
Modified: debugger/src/cell_renderers/cellrendererbreakicon.c
4 files changed, 2 insertions(+), 2 deletions(-)
===================================================================
@@ -278,12 +278,12 @@ static gint cell_renderer_break_icon_activate(GtkCellRenderer *cell, GdkEvent *e
*/
static void cell_renderer_break_icon_init (CellRendererBreakIcon *cell)
{
+ GtkCellRenderer *cell_renderer = (GtkCellRenderer*)cell;
+
cell->enabled = TRUE;
cell->condition = NULL;
cell->hitscount = 0;
- GtkCellRenderer *cell_renderer = (GtkCellRenderer*)cell;
-
cell_renderer->mode = GTK_CELL_RENDERER_MODE_ACTIVATABLE;
cell->pixbuf_enabled = cell->pixbuf_disabled = cell->pixbuf_conditional = cell->pixbuf_file = 0;
Modified: debugger/src/cell_renderers/cellrendererframeicon.c
4 files changed, 2 insertions(+), 2 deletions(-)
===================================================================
@@ -222,10 +222,10 @@ static void cell_renderer_frame_icon_render(GtkCellRenderer *cell, GdkDrawable *
*/
static void cell_renderer_frame_icon_init (CellRendererFrameIcon *cell)
{
- cell->active_frame = FALSE;
-
GtkCellRenderer *cell_renderer = (GtkCellRenderer*)cell;
+ cell->active_frame = FALSE;
+
cell_renderer->mode = GTK_CELL_RENDERER_MODE_ACTIVATABLE;
cell->pixbuf_active = cell->pixbuf_highlighted = 0;
Modified: debugger/src/dbm_gdb.c
284 files changed, 159 insertions(+), 125 deletions(-)
===================================================================
@@ -317,13 +317,17 @@ static gboolean on_read_async_output(GIOChannel * src, GIOCondition cond, gpoint
{
/* got some result */
+ GList *lines;
+ GList *commands = (GList*)data;
+ gchar *coma;
+
g_source_remove(gdb_id_out);
- GList *lines = read_until_prompt();
+ lines = read_until_prompt();
g_list_foreach(lines, (GFunc)g_free, NULL);
g_list_free (lines);
- gchar* coma = strchr(line, ',');
+ coma = strchr(line, ',');
if (coma)
{
*coma = '\0';
@@ -332,16 +336,16 @@ static gboolean on_read_async_output(GIOChannel * src, GIOCondition cond, gpoint
else
coma = line + strlen(line);
- GList *commands = (GList*)data;
-
if (!strcmp(line, "^done"))
{
/* command completed succesfully - run next command if exists */
if (commands->next)
{
/* if there are commads left */
+ queue_item *item;
+
commands = commands->next;
- queue_item *item = (queue_item*)commands->data;
+ item = (queue_item*)commands->data;
/* send message to debugger messages window */
if (item->message)
@@ -411,11 +415,12 @@ static gboolean on_read_from_gdb(GIOChannel * src, GIOCondition cond, gpointer d
{
gchar *line;
gsize length;
+ gboolean prompt;
if (G_IO_STATUS_NORMAL != g_io_channel_read_line(src, &line, NULL, &length, NULL))
return TRUE;
- gboolean prompt = !strcmp(line, GDB_PROMPT);
+ prompt = !strcmp(line, GDB_PROMPT);
*(line + length) = '\0';
@@ -440,14 +445,18 @@ static gboolean on_read_from_gdb(GIOChannel * src, GIOCondition cond, gpointer d
}
else if (g_str_has_prefix(line, "=thread-created"))
{
+ int thread_id;
+
*(strrchr(line, ',') - 1) = '\0';
- int thread_id = atoi(line + strlen("=thread-created,id=\""));
+ thread_id = atoi(line + strlen("=thread-created,id=\""));
dbg_cbs->add_thread(thread_id);
}
else if (g_str_has_prefix(line, "=thread-exited"))
{
+ int thread_id;
+
*(strrchr(line, ',') - 1) = '\0';
- int thread_id = atoi(line + strlen("=thread-exited,id=\""));
+ thread_id = atoi(line + strlen("=thread-exited,id=\""));
dbg_cbs->remove_thread(thread_id);
}
else if (g_str_has_prefix(line, "=library-loaded") || g_str_has_prefix(line, "=library-unloaded"))
@@ -470,14 +479,17 @@ static gboolean on_read_from_gdb(GIOChannel * src, GIOCondition cond, gpointer d
dbg_cbs->set_run();
else if (!strcmp(line, "*stopped"))
{
+ char *reason;
+
/* removing read callback (will pulling all output left manually) */
g_source_remove(gdb_id_out);
/* looking for a reason to stop */
- char *next = NULL;
- char *reason = strstr(record, "reason=\"");
+ reason = strstr(record, "reason=\"");
if (reason)
{
+ char *next;
+
reason += strlen("reason=\"");
next = strstr(reason, "\"") + 1;
*(next - 1) = '\0';
@@ -538,9 +550,12 @@ static gboolean on_read_from_gdb(GIOChannel * src, GIOCondition cond, gpointer d
{
if (stop_reason == SR_EXITED_WITH_CODE)
{
- gchar *code = strstr(reason + strlen(reason) + 1,"exit-code=\"") + strlen("exit-code=\"");
+ gchar *code;
+ gchar *message;
+
+ code = strstr(reason + strlen(reason) + 1,"exit-code=\"") + strlen("exit-code=\"");
*(strchr(code, '\"')) = '\0';
- gchar *message = g_strdup_printf(_("Program exited with code \"%i\""), (int)(char)strtol(code, NULL, 8));
+ message = g_strdup_printf(_("Program exited with code \"%i\""), (int)(char)strtol(code, NULL, 8));
dbg_cbs->report_error(message);
g_free(message);
@@ -552,6 +567,9 @@ static gboolean on_read_from_gdb(GIOChannel * src, GIOCondition cond, gpointer d
}
else if (g_str_has_prefix (line, "^error"))
{
+ GList *lines, *iter;
+ char *msg;
+
/* removing read callback (will pulling all output left manually) */
g_source_remove(gdb_id_out);
@@ -565,21 +583,18 @@ static gboolean on_read_from_gdb(GIOChannel * src, GIOCondition cond, gpointer d
}
/* get message */
- char *msg = strstr(line, "msg=\"") + strlen("msg=\"");
+ msg = strstr(line, "msg=\"") + strlen("msg=\"");
*strrchr(msg, '\"') = '\0';
msg = g_strcompress(msg);
/* reading until prompt */
- GList *lines = read_until_prompt();
- GList *iter = lines;
- while(iter)
+ lines = read_until_prompt();
+ for (iter = lines; iter; iter = iter->next)
{
gchar *l = (gchar*)iter->data;
if (strcmp(l, GDB_PROMPT))
colorize_message(l);
g_free(l);
-
- iter = iter->next;
}
g_list_free (lines);
@@ -619,6 +634,8 @@ void exec_async_command(const gchar* command)
*/
result_class exec_sync_command(const gchar* command, gboolean wait4prompt, gchar** command_record)
{
+ GList *lines, *iter;
+ result_class rc;
#ifdef DEBUG_OUTPUT
dbg_cbs->send_message(command, "red");
@@ -630,21 +647,18 @@ result_class exec_sync_command(const gchar* command, gboolean wait4prompt, gchar
if (!wait4prompt)
return RC_DONE;
- GList *lines = read_until_prompt();
+ lines = read_until_prompt();
#ifdef DEBUG_OUTPUT
- GList *line = lines;
- while (line)
+ for (iter = lines; iter; iter = iter->next)
{
- dbg_cbs->send_message((gchar*)line->data, "red");
- line = line->next;
+ dbg_cbs->send_message((gchar*)iter->data, "red");
}
#endif
- result_class rc = RC_ERROR;
- GList *iter = lines;
+ rc = RC_ERROR;
- while (iter)
+ for (iter = lines; iter; iter = iter->next)
{
gchar *line = (gchar*)iter->data;
@@ -683,9 +697,7 @@ result_class exec_sync_command(const gchar* command, gboolean wait4prompt, gchar
{
colorize_message (line);
}
-
- iter = iter->next;
- }
+ }
g_list_foreach(lines, (GFunc)g_free, NULL);
g_list_free(lines);
@@ -699,13 +711,18 @@ result_class exec_sync_command(const gchar* command, gboolean wait4prompt, gchar
gboolean run(const gchar* file, const gchar* commandline, GList* env, GList *witer, GList *biter, const gchar* terminal_device, dbg_callbacks* callbacks)
{
GError *err = NULL;
+ const gchar *exclude[] = { "LANG", NULL };
+ gchar **gdb_env = utils_copy_environment(exclude, "LANG", "C", NULL);
+ gchar *working_directory = g_path_get_dirname(file);
+ GList *lines, *iter;
+ GList *commands = NULL;
+ GString *command;
+ int bp_index;
+ queue_item *item;
dbg_cbs = callbacks;
/* spawn GDB */
- const gchar *exclude[] = { "LANG", NULL };
- gchar **gdb_env = utils_copy_environment(exclude, "LANG", "C", NULL);
- gchar *working_directory = g_path_get_dirname(file);
if (!g_spawn_async_with_pipes(working_directory, (gchar**)gdb_args, gdb_env,
GDB_SPAWN_FLAGS, NULL,
NULL, &gdb_pid, &gdb_in, &gdb_out, NULL, &err))
@@ -730,16 +747,14 @@ gboolean run(const gchar* file, const gchar* commandline, GList* env, GList *wit
gdb_ch_out = g_io_channel_unix_new(gdb_out);
/* reading starting gdb messages */
- GList *lines = read_until_prompt();
- GList *line = lines;
- while (line)
+ lines = read_until_prompt();
+ for (iter = lines; iter; iter = iter->next)
{
- gchar *unescaped = g_strcompress((gchar*)line->data);
+ gchar *unescaped = g_strcompress((gchar*)iter->data);
if (strlen(unescaped))
{
- colorize_message((gchar*)line->data);
+ colorize_message((gchar*)iter->data);
}
- line = line->next;
}
g_list_foreach(lines, (GFunc)g_free, NULL);
g_list_free(lines);
@@ -756,10 +771,9 @@ gboolean run(const gchar* file, const gchar* commandline, GList* env, GList *wit
}
/* collect commands */
- GList *commands = NULL;
/* loading file */
- GString *command = g_string_new("");
+ command = g_string_new("");
g_string_printf(command, "-file-exec-and-symbols \"%s\"", file);
commands = add_to_queue(commands, _("~\"Loading target file.\\n\""), command->str, _("Error loading file"), FALSE);
g_string_free(command, TRUE);
@@ -786,14 +800,15 @@ gboolean run(const gchar* file, const gchar* commandline, GList* env, GList *wit
g_string_free(command, TRUE);
/* set passed evironment */
- GList *iter = env;
+ iter = env;
while (iter)
{
- gchar *name = (gchar*)iter->data;
+ gchar *name, *value;
+
+ name = (gchar*)iter->data;
iter = iter->next;
-
- gchar *value = (gchar*)iter->data;
-
+ value = (gchar*)iter->data;
+
command = g_string_new("");
g_string_printf(command, "-gdb-set environment %s=%s", name, value);
@@ -804,14 +819,15 @@ gboolean run(const gchar* file, const gchar* commandline, GList* env, GList *wit
}
/* set breaks */
- int bp_index = 1;
+ bp_index = 1;
while (biter)
{
breakpoint *bp = (breakpoint*)biter->data;
+ GString *error_message = g_string_new("");
+
command = g_string_new("");
g_string_printf(command, "-break-insert -f \"\\\"%s\\\":%i\"", bp->file, bp->line);
- GString *error_message = g_string_new("");
g_string_printf(error_message, _("Breakpoint at %s:%i cannot be set\nDebugger message: %s"), bp->file, bp->line, "%s");
commands = add_to_queue(commands, NULL, command->str, error_message->str, TRUE);
@@ -855,7 +871,7 @@ gboolean run(const gchar* file, const gchar* commandline, GList* env, GList *wit
/* connect read callback to the output chanel */
gdb_id_out = g_io_add_watch(gdb_ch_out, G_IO_IN, on_read_async_output, commands);
- queue_item *item = (queue_item*)commands->data;
+ item = (queue_item*)commands->data;
/* send message to debugger messages window */
if (item->message)
@@ -933,27 +949,32 @@ void execute_until(const gchar *file, int line)
*/
int get_break_number(char* file, int line)
{
- gchar* record;
+ gchar *record, *bstart;
+
exec_sync_command("-break-list", TRUE, &record);
-
- gchar* bstart = record;
+ bstart = record;
+
while ( (bstart = strstr(bstart, "bkpt=")) )
{
+ gchar *fname, *file_quoted;
+ int num, bline;
+ gboolean break_found;
+
bstart += strlen("bkpt={number=\"");
*strchr(bstart, '\"') = '\0';
- int num = atoi(bstart);
+ num = atoi(bstart);
bstart += strlen(bstart) + 1;
bstart = strstr(bstart, "original-location=\"") + strlen("original-location=\"");
*strchr(bstart, ':') = '\0';
- gchar *fname = bstart;
+ fname = bstart;
bstart += strlen(bstart) + 1;
*strchr(bstart, '\"') = '\0';
- int bline = atoi(bstart);
+ bline = atoi(bstart);
- gchar *file_quoted = g_strdup_printf("\\\"%s\\\"", file);
- int break_found = !strcmp(fname, file_quoted) && bline == line;
+ file_quoted = g_strdup_printf("\\\"%s\\\"", file);
+ break_found = !strcmp(fname, file_quoted) && bline == line;
g_free(file_quoted);
if (break_found)
@@ -978,8 +999,11 @@ gboolean set_break(breakpoint* bp, break_set_activity bsa)
if (BSA_NEW_BREAK == bsa)
{
/* new breakpoint */
+
+ char *pos;
+ int number;
gchar *record = NULL;
-
+
/* 1. insert breakpoint */
sprintf (command, "-break-insert \"\\\"%s\\\":%i\"", bp->file, bp->line);
if (RC_DONE != exec_sync_command(command, TRUE, &record))
@@ -993,9 +1017,9 @@ gboolean set_break(breakpoint* bp, break_set_activity bsa)
}
}
/* lookup break-number */
- char *pos = strstr(record, "number=\"") + strlen("number=\"");
+ pos = strstr(record, "number=\"") + strlen("number=\"");
*strchr(pos, '\"') = '\0';
- int number = atoi(pos);
+ number = atoi(pos);
g_free(record);
/* 2. set hits count if differs from 0 */
if (bp->hitscount)
@@ -1048,9 +1072,11 @@ gboolean remove_break(breakpoint* bp)
int number = get_break_number(bp->file, bp->line);
if (-1 != number)
{
+ result_class rc;
gchar command[100];
+
sprintf(command, "-break-delete %i", number);
- result_class rc = exec_sync_command(command, TRUE, NULL);
+ rc = exec_sync_command(command, TRUE, NULL);
return RC_DONE == rc;
}
@@ -1086,20 +1112,24 @@ void set_active_frame(int frame_number)
GList* get_stack(void)
{
gchar* record = NULL;
- result_class rc = exec_sync_command("-stack-list-frames", TRUE, &record);
+ GList *stack = NULL;
+ gchar **frames, **next;
+ result_class rc;
+
+ rc = exec_sync_command("-stack-list-frames", TRUE, &record);
if (RC_DONE != rc)
return NULL;
-
- GList *stack = NULL;
- gchar **frames = g_strsplit(record, "frame=", 0);
- gchar **next = frames + 1;
+ frames = g_strsplit(record, "frame=", 0);
+ next = frames + 1;
while (*next)
{
frame *f = frame_new();
+ int line;
+ gchar *pos, *fullname, *file, *from;
/* adresss */
- gchar* pos = strstr(*next, "addr=\"") + strlen("addr=\"");
+ pos = strstr(*next, "addr=\"") + strlen("addr=\"");
*strchr(pos, '\"') = '\0';
f->address = g_strdup(pos);
pos += strlen(pos) + 1;
@@ -1111,9 +1141,9 @@ GList* get_stack(void)
pos += strlen(pos) + 1;
/* file: fullname | file | from */
- char* fullname = strstr(pos, "fullname=\"");
- char* file = strstr(pos, "file=\"");
- char* from = strstr(pos, "from=\"");
+ fullname = strstr(pos, "fullname=\"");
+ file = strstr(pos, "file=\"");
+ from = strstr(pos, "from=\"");
if (fullname)
{
@@ -1148,7 +1178,7 @@ GList* get_stack(void)
f->have_source = fullname ? TRUE : FALSE;
/* line */
- int line = 0;
+ line = 0;
pos = strstr(pos, "line=\"");
if (pos)
{
@@ -1181,6 +1211,9 @@ gchar* unescape_hex_values(gchar *src)
gchar *slash;
while ( (slash = strstr(src, "\\x")) )
{
+ char hex[4] = { 0, 0, 0, '\0' };
+ wchar_t wc;
+
/* append what has been missed
unescaping it in advance */
if (slash - src)
@@ -1192,10 +1225,9 @@ gchar* unescape_hex_values(gchar *src)
g_free(unescaped);
}
- char hex[4] = { 0, 0, 0, '\0' };
strncpy(hex, slash + 2, 3);
- wchar_t wc = (wchar_t)strtol(hex, NULL, 16);
-
+ wc = (wchar_t)strtol(hex, NULL, 16);
+
if (iswalpha(wc))
{
gchar mb[5];
@@ -1321,13 +1353,16 @@ void get_variables (GList *vars)
gchar *varname = var->internal->str;
gchar *record = NULL;
gchar *pos;
+ gchar *expression;
+ int numchild;
+ gchar *value;
/* path expression */
sprintf(command, "-var-info-path-expression \"%s\"", varname);
exec_sync_command(command, TRUE, &record);
pos = strstr(record, "path_expr=\"") + strlen("path_expr=\"");
*(strrchr(pos, '\"')) = '\0';
- gchar *expression = unescape(pos);
+ expression = unescape(pos);
g_string_assign(var->expression, expression);
g_free(expression);
g_free(record);
@@ -1337,7 +1372,7 @@ void get_variables (GList *vars)
exec_sync_command(command, TRUE, &record);
pos = strstr(record, "numchild=\"") + strlen("numchild=\"");
*(strchr(pos, '\"')) = '\0';
- int numchild = atoi(pos);
+ numchild = atoi(pos);
var->has_children = numchild > 0;
g_free(record);
@@ -1354,7 +1389,7 @@ void get_variables (GList *vars)
}
pos += + strlen("value=\"");
*(strrchr(pos, '\"')) = '\0';
- gchar *value = unescape(pos);
+ value = unescape(pos);
g_string_assign(var->value, value);
g_free(value);
g_free(record);
@@ -1376,6 +1411,10 @@ void get_variables (GList *vars)
*/
void update_files(void)
{
+ GHashTable *ht = g_hash_table_new_full(g_str_hash, g_str_equal, NULL, NULL);
+ gchar *record = NULL;
+ gchar *pos;
+
if (files)
{
/* free previous list */
@@ -1384,11 +1423,8 @@ void update_files(void)
files = NULL;
}
- GHashTable *ht = g_hash_table_new_full(g_str_hash, g_str_equal, NULL, NULL);
-
- gchar *record = NULL;
exec_sync_command("-file-list-exec-source-files", TRUE, &record);
- gchar *pos = record;
+ pos = record;
while ( (pos = strstr(pos, "fullname=\"")) )
{
pos += strlen("fullname=\"");
@@ -1412,10 +1448,11 @@ void update_files(void)
void update_watches(void)
{
gchar command[1000];
+ GList *updating = NULL;
+ GList *iter;
/* delete all GDB variables */
- GList *iter = watches;
- while (iter)
+ for (iter = watches; iter; iter = iter->next)
{
variable *var = (variable*)iter->data;
@@ -1427,22 +1464,19 @@ void update_watches(void)
/* reset all variables fields */
variable_reset(var);
-
- iter = iter->next;
}
/* create GDB variables, adding successfully created
variables to the list then passed for updatind */
- GList *updating = NULL;
- iter = watches;
- while (iter)
+ for (iter = watches; iter; iter = iter->next)
{
variable *var = (variable*)iter->data;
-
- /* try to create variable */
- gchar *record = NULL;
+ gchar *record = NULL;
+ gchar *pos;
+ gchar *escaped;
- gchar *escaped = g_strescape(var->name->str, NULL);
+ /* try to create variable */
+ escaped = g_strescape(var->name->str, NULL);
sprintf(command, "-var-create - * \"%s\"", escaped);
g_free(escaped);
@@ -1451,14 +1485,13 @@ void update_watches(void)
/* do not include to updating list, move to next watch */
var->evaluated = FALSE;
g_string_assign(var->internal, "");
- g_free(record);
- iter = iter->next;
+ g_free(record);
continue;
}
/* find and assign internal name */
- gchar *pos = strstr(record, "name=\"") + strlen("name=\"");
+ pos = strstr(record, "name=\"") + strlen("name=\"");
*strchr(pos, '\"') = '\0';
g_string_assign(var->internal, pos);
g_free(record);
@@ -1467,8 +1500,6 @@ void update_watches(void)
/* add to updating list */
updating = g_list_append(updating, var);
-
- iter = iter->next;
}
/* update watches */
@@ -1484,17 +1515,17 @@ void update_watches(void)
void update_autos(void)
{
gchar command[1000];
+ GList *unevaluated = NULL, *iter;
+ const char *gdb_commands[2];
+ int i;
/* remove all previous GDB variables for autos */
- GList *iter = autos;
- while (iter)
+ for (iter = autos; iter; iter = iter->next)
{
variable *var = (variable*)iter->data;
sprintf(command, "-var-delete %s", var->internal->str);
exec_sync_command(command, TRUE, NULL);
-
- iter = iter->next;
}
g_list_foreach(autos, (GFunc)variable_free, NULL);
@@ -1502,29 +1533,30 @@ void update_autos(void)
autos = NULL;
/* add current autos to the list */
- GList *unevaluated = NULL;
- const char *gdb_commands[] = { g_strdup_printf("-stack-list-arguments 0 %i %i", active_frame, active_frame), "-stack-list-locals 0" };
- int i, size = sizeof (gdb_commands) / sizeof(char*);
- for (i = 0; i < size; i++)
+ gdb_commands[0] = g_strdup_printf("-stack-list-arguments 0 %i %i", active_frame, active_frame);
+ gdb_commands[1] = "-stack-list-locals 0";
+ for (i = 0; i < sizeof (gdb_commands) / sizeof(*gdb_commands); i++)
{
- gchar *record = NULL;
+ gchar *record = NULL, *pos;
+
result_class rc = exec_sync_command(gdb_commands[i], TRUE, &record);
if (RC_DONE != rc)
break;
- gchar *pos = record;
+ pos = record;
while ((pos = strstr(pos, "name=\"")))
{
+ variable *var;
+ gchar *create_record = NULL, *escaped;
+
pos += strlen("name=\"");
*(strchr(pos, '\"')) = '\0';
- variable *var = variable_new(pos, i ? VT_LOCAL : VT_ARGUMENT);
+ var = variable_new(pos, i ? VT_LOCAL : VT_ARGUMENT);
/* create new gdb variable */
- gchar *create_record = NULL;
-
- gchar *escaped = g_strescape(pos, NULL);
+ escaped = g_strescape(pos, NULL);
sprintf(command, "-var-create - * \"%s\"", escaped);
g_free(escaped);
@@ -1594,6 +1626,7 @@ GList* get_children (gchar* path)
result_class rc;
gchar *record = NULL;
gchar *pos = NULL;
+ int numchild;
/* children number */
sprintf(command, "-var-info-num-children \"%s\"", path);
@@ -1602,7 +1635,7 @@ GList* get_children (gchar* path)
return NULL;
pos = strstr(record, "numchild=\"") + strlen("numchild=\"");
*(strchr(pos, '\"')) = '\0';
- int numchild = atoi(pos);
+ numchild = atoi(pos);
g_free(record);
if (!numchild)
return NULL;
@@ -1616,6 +1649,7 @@ GList* get_children (gchar* path)
while ( (pos = strstr(pos, "child={")) )
{
gchar *name, *internal;
+ variable *var;
/* name */
pos = strstr(pos, "name=\"") + strlen("name=\"");
@@ -1629,7 +1663,7 @@ GList* get_children (gchar* path)
name = g_strcompress(pos);
- variable *var = variable_new2(name, internal, VT_CHILD);
+ var = variable_new2(name, internal, VT_CHILD);
var->evaluated = TRUE;
pos += strlen(pos) + 1;
@@ -1652,14 +1686,14 @@ GList* get_children (gchar* path)
variable* add_watch(gchar* expression)
{
gchar command[1000];
-
+ gchar *record = NULL, *escaped, *pos;
+ GList *vars = NULL;
variable *var = variable_new(expression, VT_WATCH);
+
watches = g_list_append(watches, var);
/* try to create a variable */
- gchar *record = NULL;
-
- gchar *escaped = g_strescape(expression, NULL);
+ escaped = g_strescape(expression, NULL);
sprintf(command, "-var-create - * \"%s\"", escaped);
g_free(escaped);
@@ -1669,12 +1703,12 @@ variable* add_watch(gchar* expression)
return var;
}
- gchar *pos = strstr(record, "name=\"") + strlen("name=\"");
+ pos = strstr(record, "name=\"") + strlen("name=\"");
*strchr(pos, '\"') = '\0';
g_string_assign(var->internal, pos);
var->evaluated = TRUE;
- GList *vars = g_list_append(NULL, var);
+ vars = g_list_append(NULL, var);
get_variables(vars);
g_free(record);
@@ -1709,11 +1743,12 @@ void remove_watch(gchar* internal)
*/
gchar *evaluate_expression(gchar *expression)
{
- gchar *record = NULL;
-
+ gchar *record = NULL, *pos;
char command[1000];
+ result_class rc;
+
sprintf (command, "-data-evaluate-expression \"%s\"", expression);
- result_class rc = exec_sync_command(command, TRUE, &record);
+ rc = exec_sync_command(command, TRUE, &record);
if (RC_DONE != rc)
{
@@ -1721,11 +1756,10 @@ gchar *evaluate_expression(gchar *expression)
return NULL;
}
- gchar *pos = strstr(record, "value=\"") + strlen("value=\"");
+ pos = strstr(record, "value=\"") + strlen("value=\"");
*(strrchr(pos, '\"')) = '\0';
- gchar *retval = unescape(pos);
-
- return retval;
+
+ return unescape(pos);
}
/*
Modified: debugger/src/dconfig.c
108 files changed, 61 insertions(+), 47 deletions(-)
===================================================================
@@ -81,14 +81,16 @@
*/
GKeyFile *create_copy_keyfile(GKeyFile *keyfile)
{
- gchar *path;
+ gchar *path, *config_data;
+ GKeyFile *copy;
+
close(g_file_open_tmp(NULL, &path, NULL));
- gchar *config_data = g_key_file_to_data(keyfile, NULL, NULL);
+ config_data = g_key_file_to_data(keyfile, NULL, NULL);
g_file_set_contents(path, config_data, -1, NULL);
g_free(config_data);
- GKeyFile *copy = g_key_file_new();
+ copy = g_key_file_new();
g_key_file_load_from_file(copy, path, G_KEY_FILE_NONE, NULL);
g_remove(path);
@@ -102,9 +104,11 @@ GKeyFile *create_copy_keyfile(GKeyFile *keyfile)
*/
void debug_load_from_keyfile(GKeyFile *keyfile)
{
+ gchar *value;
+ int i, count;
+
debug_config_loading = TRUE;
- gchar *value;
/* target */
tpage_set_target(value = g_key_file_get_string(keyfile, DEBUGGER_GROUP, "target", NULL));
g_free(value);
@@ -115,16 +119,14 @@ void debug_load_from_keyfile(GKeyFile *keyfile)
tpage_set_commandline(value = g_key_file_get_string(keyfile, DEBUGGER_GROUP, "arguments", NULL));
g_free(value);
- int i;
-
/* environment */
- int envcount = g_key_file_get_integer(keyfile, DEBUGGER_GROUP, "envvar_count", NULL);
- for (i = 0; i < envcount; i++)
+ count = g_key_file_get_integer(keyfile, DEBUGGER_GROUP, "envvar_count", NULL);
+ for (i = 0; i < count; i++)
{
gchar *env_name_id = g_strdup_printf("envvar_%i_name", i);
gchar *env_value_id = g_strdup_printf("envvar_%i_value", i);
-
gchar *name = g_key_file_get_string(keyfile, DEBUGGER_GROUP, env_name_id, NULL);
+
value = g_key_file_get_string(keyfile, DEBUGGER_GROUP, env_value_id, NULL);
tpage_add_environment(name, value);
@@ -137,8 +139,8 @@ void debug_load_from_keyfile(GKeyFile *keyfile)
}
/* watches */
- int wcount = g_key_file_get_integer(keyfile, DEBUGGER_GROUP, "watches_count", NULL);
- for (i = 0; i < wcount; i++)
+ count = g_key_file_get_integer(keyfile, DEBUGGER_GROUP, "watches_count", NULL);
+ for (i = 0; i < count; i++)
{
gchar *watch_id = g_strdup_printf("watch_%i", i);
wtree_add_watch(value = g_key_file_get_string(keyfile, DEBUGGER_GROUP, watch_id, NULL));
@@ -147,8 +149,8 @@ void debug_load_from_keyfile(GKeyFile *keyfile)
}
/* breakpoints */
- int bcount = g_key_file_get_integer(keyfile, DEBUGGER_GROUP, "breaks_count", NULL);
- for (i = 0; i < bcount; i++)
+ count = g_key_file_get_integer(keyfile, DEBUGGER_GROUP, "breaks_count", NULL);
+ for (i = 0; i < count; i++)
{
gchar *break_file_id = g_strdup_printf("break_%i_file", i);
gchar *break_line_id = g_strdup_printf("break_%i_line", i);
@@ -183,6 +185,9 @@ void debug_load_from_keyfile(GKeyFile *keyfile)
*/
void save_to_keyfile(GKeyFile *keyfile)
{
+ GList *_env, *watches, *_breaks, *iter;
+ int env_index, watch_index, bp_index;
+
g_key_file_remove_group(keyfile, DEBUGGER_GROUP, NULL);
g_key_file_set_string(keyfile, DEBUGGER_GROUP, "target", tpage_get_target());
@@ -190,19 +195,20 @@ void save_to_keyfile(GKeyFile *keyfile)
g_key_file_set_string(keyfile, DEBUGGER_GROUP, "arguments", tpage_get_commandline());
/* environment */
- GList *_env = tpage_get_environment();
+ _env = tpage_get_environment();
g_key_file_set_integer(keyfile, DEBUGGER_GROUP, "envvar_count", g_list_length(_env) / 2);
- GList *iter = _env;
- int env_index = 0;
+ iter = _env;
+ env_index = 0;
while(iter)
{
- gchar *name = (gchar*)iter->data;
- iter = iter->next;
- gchar *value = (gchar*)iter->data;
-
+ gchar *name, *value;
gchar *env_name_id = g_strdup_printf("envvar_%i_name", env_index);
gchar *env_value_id = g_strdup_printf("envvar_%i_value", env_index);
-
+
+ name = (gchar*)iter->data;
+ iter = iter->next;
+ value = (gchar*)iter->data;
+
g_key_file_set_string(keyfile, DEBUGGER_GROUP, env_name_id, name);
g_key_file_set_string(keyfile, DEBUGGER_GROUP, env_value_id, value);
@@ -216,13 +222,12 @@ void save_to_keyfile(GKeyFile *keyfile)
g_list_free(_env);
/* watches */
- GList *watches = wtree_get_watches();
+ watches = wtree_get_watches();
g_key_file_set_integer(keyfile, DEBUGGER_GROUP, "watches_count", g_list_length(watches));
- int watch_index = 0;
- GList *biter = watches;
- while (biter)
+ watch_index = 0;
+ for (iter = watches; iter; iter = iter->next)
{
- gchar *watch = (gchar*)biter->data;
+ gchar *watch = (gchar*)iter->data;
gchar *watch_id = g_strdup_printf("watch_%i", watch_index);
g_key_file_set_string(keyfile, DEBUGGER_GROUP, watch_id, watch);
@@ -230,19 +235,17 @@ void save_to_keyfile(GKeyFile *keyfile)
g_free(watch_id);
watch_index++;
- biter = biter->next;
}
g_list_foreach(watches, (GFunc)g_free, NULL);
g_list_free(watches);
/* breakpoints */
- GList *_breaks = breaks_get_all();
+ _breaks = breaks_get_all();
g_key_file_set_integer(keyfile, DEBUGGER_GROUP, "breaks_count", g_list_length(_breaks));
- int bp_index = 0;
- biter = _breaks;
- while (biter)
+ bp_index = 0;
+ for (iter = _breaks; iter; iter = iter->next)
{
- breakpoint *bp = (breakpoint*)biter->data;
+ breakpoint *bp = (breakpoint*)iter->data;
gchar *break_file_id = g_strdup_printf("break_%i_file", bp_index);
gchar *break_line_id = g_strdup_printf("break_%i_line", bp_index);
@@ -261,9 +264,8 @@ void save_to_keyfile(GKeyFile *keyfile)
g_free(break_condition_id);
g_free(break_hits_id);
g_free(break_enabled_id);
-
+
bp_index++;
- biter = biter->next;
}
g_list_free(_breaks);
}
@@ -284,6 +286,8 @@ static gpointer saving_thread_func(gpointer data)
(debug_config_changed && DEBUG_STORE_PLUGIN == dstore)
)
{
+ gchar *config_data;
+
/* if all saving is going to be done to a plugin keyfile */
if (debug_config_changed)
{
@@ -291,7 +295,7 @@ static gpointer saving_thread_func(gpointer data)
debug_config_changed = FALSE;
}
- gchar *config_data = g_key_file_to_data(keyfile_plugin, NULL, NULL);
+ config_data = g_key_file_to_data(keyfile_plugin, NULL, NULL);
g_file_set_contents(plugin_config_path, config_data, -1, NULL);
g_free(config_data);
@@ -300,10 +304,12 @@ static gpointer saving_thread_func(gpointer data)
if (debug_config_changed && DEBUG_STORE_PROJECT == dstore)
{
+ gchar *config_data;
+
/* if debug is saved into a project and has been changed */
save_to_keyfile(keyfile_project);
- gchar *config_data = g_key_file_to_data(keyfile_project, NULL, NULL);
+ config_data = g_key_file_to_data(keyfile_project, NULL, NULL);
g_file_set_contents(geany_data->app->project->file_name, config_data, -1, NULL);
g_free(config_data);
@@ -339,9 +345,10 @@ void config_set_debug_changed(void)
*/
void config_set_panel(int config_part, gpointer config_value, ...)
{
+ va_list ap;
+
g_mutex_lock(change_config_mutex);
- va_list ap;
va_start(ap, config_value);
while(config_part)
@@ -418,16 +425,18 @@ void config_set_debug_defaults(GKeyFile *keyfile)
*/
void config_set_panel_defaults(GKeyFile *keyfile)
{
- g_key_file_set_boolean(keyfile_plugin, "tabbed_mode", "enabled", FALSE);
-
int all_tabs[] = { TID_TARGET, TID_BREAKS, TID_AUTOS, TID_WATCH, TID_STACK, TID_TERMINAL, TID_MESSAGES };
+ int left_tabs[] = { TID_TARGET, TID_BREAKS, TID_AUTOS, TID_WATCH };
+ int right_tabs[] = { TID_STACK, TID_TERMINAL, TID_MESSAGES };
+
+ g_key_file_set_boolean(keyfile_plugin, "tabbed_mode", "enabled", FALSE);
+ /* all tabs */
g_key_file_set_integer_list(keyfile, "one_panel_mode", "tabs", all_tabs, sizeof(all_tabs) / sizeof(int));
g_key_file_set_integer(keyfile, "one_panel_mode", "selected_tab_index", 0);
-
- int left_tabs[] = { TID_TARGET, TID_BREAKS, TID_AUTOS, TID_WATCH };
+ /* left tabs */
g_key_file_set_integer_list(keyfile, "two_panels_mode", "left_tabs", left_tabs, sizeof(left_tabs) / sizeof(int));
g_key_file_set_integer(keyfile, "two_panels_mode", "left_selected_tab_index", 0);
- int right_tabs[] = { TID_STACK, TID_TERMINAL, TID_MESSAGES };
+ /* right tabs */
g_key_file_set_integer_list(keyfile, "two_panels_mode", "right_tabs", right_tabs, sizeof(right_tabs) / sizeof(int));
g_key_file_set_integer(keyfile, "two_panels_mode", "right_selected_tab_index", 0);
@@ -449,8 +458,10 @@ void config_init(void)
keyfile_plugin = g_key_file_new();
if (!g_key_file_load_from_file(keyfile_plugin, plugin_config_path, G_KEY_FILE_NONE, NULL))
{
+ gchar *data;
+
config_set_panel_defaults(keyfile_plugin);
- gchar *data = g_key_file_to_data(keyfile_plugin, NULL, NULL);
+ data = g_key_file_to_data(keyfile_plugin, NULL, NULL);
g_file_set_contents(plugin_config_path, data, -1, NULL);
g_free(data);
}
@@ -524,20 +535,23 @@ int config_get_right_selected_tab_index(void)
*/
void config_set_debug_store(debug_store store)
{
+ GKeyFile *keyfile;
+
dstore = store;
tpage_clear();
wtree_remove_all();
breaks_remove_all();
- GKeyFile *keyfile = DEBUG_STORE_PROJECT == dstore ? keyfile_project : keyfile_plugin;
-
+ keyfile = DEBUG_STORE_PROJECT == dstore ? keyfile_project : keyfile_plugin;
if (!g_key_file_has_group(keyfile, DEBUGGER_GROUP))
{
+ gchar *data, *file;
+
config_set_debug_defaults(keyfile);
- gchar *data = g_key_file_to_data(keyfile, NULL, NULL);
+ data = g_key_file_to_data(keyfile, NULL, NULL);
- gchar *file = DEBUG_STORE_PROJECT == dstore ? geany_data->app->project->file_name : plugin_config_path;
+ file = DEBUG_STORE_PROJECT == dstore ? geany_data->app->project->file_name : plugin_config_path;
g_file_set_contents(file, data, -1, NULL);
g_free(data);
Modified: debugger/src/debug.c
123 files changed, 74 insertions(+), 49 deletions(-)
===================================================================
@@ -219,32 +219,36 @@ static void on_watch_changed(GtkCellRendererText *renderer, gchar *path, gchar *
{
/* get iterator to the changed row */
GtkTreeIter iter;
+ gchar *oldvalue;
+ gchar *internal = NULL;
+ GtkTreePath *empty_path;
GtkTreePath *tree_path = gtk_tree_path_new_from_string (path);
+ gboolean is_empty_row;
+ gchar *striped;
+
gtk_tree_model_get_iter (
gtk_tree_view_get_model(GTK_TREE_VIEW(wtree)),
&iter,
tree_path);
/* get oldvalue */
- gchar* oldvalue;
gtk_tree_model_get (
wmodel,
&iter,
W_NAME, &oldvalue,
- -1);
- gchar *internal = NULL;
- gtk_tree_model_get (
+ -1);
+ gtk_tree_model_get (
wmodel,
&iter,
W_INTERNAL, &internal,
-1);
/* check if it is empty row */
- GtkTreePath *empty_path = wtree_empty_path();
- gboolean is_empty_row = !gtk_tree_path_compare (tree_path, empty_path);
+ empty_path = wtree_empty_path();
+ is_empty_row = !gtk_tree_path_compare (tree_path, empty_path);
gtk_tree_path_free(empty_path);
- gchar *striped = g_strstrip(g_strdup(new_text));
+ striped = g_strstrip(g_strdup(new_text));
if (!strlen(striped) &&
!is_empty_row &&
dialogs_show_question(_("Delete variable?")))
@@ -272,8 +276,10 @@ static void on_watch_changed(GtkCellRendererText *renderer, gchar *path, gchar *
/* if debug is active - remove old watch and add new one */
if (DBS_STOPPED == debug_state)
{
+ variable *newvar;
+
active_module->remove_watch(internal);
- variable *newvar = active_module->add_watch(striped);
+ newvar = active_module->add_watch(striped);
change_watch(GTK_TREE_VIEW(wtree), is_empty_row ? &newiter : &iter, newvar);
}
@@ -306,14 +312,16 @@ static void on_watch_dragged_callback(GtkWidget *wgt, GdkDragContext *context, i
{
/* string that is dragged */
gchar *expression = (gchar*)seldata->data;
-
- /* lookup for where the text has been dropped */
GtkTreePath *path = NULL;
GtkTreeViewDropPosition pos;
+ GtkTreePath *empty_path;
+ GtkTreeIter newvar;
+
+ /* lookup for where the text has been dropped */
gtk_tree_view_get_dest_row_at_pos(GTK_TREE_VIEW(wtree), x, y, &path, &pos);
/* if dropped into last row - insert before it */
- GtkTreePath *empty_path = wtree_empty_path();
+ empty_path = wtree_empty_path();
if (!gtk_tree_path_compare(empty_path, path))
pos = GTK_TREE_VIEW_DROP_BEFORE;
gtk_tree_path_free(empty_path);
@@ -327,7 +335,6 @@ static void on_watch_dragged_callback(GtkWidget *wgt, GdkDragContext *context, i
}
/* insert new row */
- GtkTreeIter newvar;
if (path)
{
GtkTreeIter sibling;
@@ -362,18 +369,21 @@ static void on_watch_dragged_callback(GtkWidget *wgt, GdkDragContext *context, i
*/
static gboolean on_watch_key_pressed_callback(GtkWidget *widget, GdkEvent *event, gpointer user_data)
{
+ GtkTreeSelection *selection;
+ GList *rows;
+ GtkTreePath *empty_path;
+
/* handling only Delete button pressing
* that means "delete selected rows" */
- int keyval = ((GdkEventKey*)event)->keyval;
- if (keyval != GDK_Delete)
+ if (((GdkEventKey*)event)->keyval != GDK_Delete)
return FALSE;
/* get selected rows */
- GtkTreeSelection *selection = gtk_tree_view_get_selection(GTK_TREE_VIEW(wtree));
- GList *rows = gtk_tree_selection_get_selected_rows(selection, &wmodel);
+ selection = gtk_tree_view_get_selection(GTK_TREE_VIEW(wtree));
+ rows = gtk_tree_selection_get_selected_rows(selection, &wmodel);
/* empty row path */
- GtkTreePath *empty_path = wtree_empty_path();
+ empty_path = wtree_empty_path();
/* check whether only empty row was selected */
if (1 != gtk_tree_selection_count_selected_rows(selection) ||
@@ -381,6 +391,7 @@ static gboolean on_watch_key_pressed_callback(GtkWidget *widget, GdkEvent *even
{
/* path reference to select after deleteing finishes */
GtkTreeRowReference *reference_to_select = NULL;
+ GtkTreePath *path_to_select;
/* get references to the rows */
GList *references = NULL;
@@ -411,6 +422,7 @@ static gboolean on_watch_key_pressed_callback(GtkWidget *widget, GdkEvent *even
current reference was already deleted */
if (gtk_tree_row_reference_valid(reference))
{
+ GtkTreeIter titer;
GtkTreePath *path = gtk_tree_row_reference_get_path(reference);
if (!reference_to_select)
@@ -428,7 +440,6 @@ static gboolean on_watch_key_pressed_callback(GtkWidget *widget, GdkEvent *even
}
/* get iterator */
- GtkTreeIter titer;
gtk_tree_model_get_iter(wmodel, &titer, path);
/* remove from the debug session, if it's active */
@@ -467,7 +478,7 @@ static gboolean on_watch_key_pressed_callback(GtkWidget *widget, GdkEvent *even
/* set selection */
gtk_tree_selection_unselect_all(selection);
- GtkTreePath *path_to_select = gtk_tree_row_reference_get_path(reference_to_select);
+ path_to_select = gtk_tree_row_reference_get_path(reference_to_select);
gtk_tree_selection_select_path(selection, path_to_select);
gtk_tree_view_scroll_to_cell(GTK_TREE_VIEW(widget), path_to_select, NULL, TRUE, 0.5, 0.5);
gtk_tree_path_free(path_to_select);
@@ -500,11 +511,11 @@ gboolean on_watch_button_pressed_callback(GtkWidget *treeview, GdkEventButton *e
GTK_TREE_VIEW(treeview),
(int)event->x, (int)event->y, &path, NULL, NULL, NULL))
{
+ gchar *expression = NULL;
GtkTreeIter iter;
GtkTreeModel *model = gtk_tree_view_get_model(GTK_TREE_VIEW(treeview));
gtk_tree_model_get_iter (model, &iter, path);
- gchar *expression = NULL;
gtk_tree_model_get(model, &iter,
W_EXPRESSION, &expression,
-1);
@@ -556,8 +567,10 @@ static void on_watch_expanded_callback(GtkTreeView *tree, GtkTreeIter *iter, Gtk
if (only_stub)
{
- /* if item has not been expanded before */
+ GList *children;
gchar *internal;
+
+ /* if item has not been expanded before */
gtk_tree_model_get (
model,
iter,
@@ -565,7 +578,7 @@ static void on_watch_expanded_callback(GtkTreeView *tree, GtkTreeIter *iter, Gtk
-1);
/* get children list */
- GList *children = active_module->get_children(internal);
+ children = active_module->get_children(internal);
/* remove stub and add children */
expand_stub(tree, iter, children);
@@ -634,6 +647,8 @@ static void on_debugger_run (void)
*/
static void on_debugger_stopped (int thread_id)
{
+ GList *iter, *files, *autos, *watches;
+
/* update debug state */
debug_state = DBS_STOPPED;
@@ -671,18 +686,15 @@ static void on_debugger_stopped (int thread_id)
/* get current stack trace and put in the tree view */
stack = active_module->get_stack();
-
- GList *iter = stack;
- while (iter)
+ for (iter = stack; iter; iter = iter->next)
{
frame *f = (frame*)iter->data;
stree_add(f);
- iter = g_list_next(iter);
}
stree_select_first_frame(TRUE);
/* files */
- GList *files = active_module->get_files();
+ files = active_module->get_files();
/* remove from list and make writable those files,
that are not in the current list */
iter = read_only_pages;
@@ -690,6 +702,8 @@ static void on_debugger_stopped (int thread_id)
{
if (!g_list_find_custom(files, iter->data, (GCompareFunc)g_strcmp0))
{
+ GList *next;
+
/* set document writable */
GeanyDocument *doc = document_find_by_real_path((const gchar*)iter->data);
if (doc)
@@ -698,7 +712,7 @@ static void on_debugger_stopped (int thread_id)
/* free file name */
g_free(iter->data);
/* save next item pointer */
- GList *next = iter->next;
+ next = iter->next;
/* remove current item */
read_only_pages = g_list_delete_link(read_only_pages, iter);
@@ -729,11 +743,11 @@ static void on_debugger_stopped (int thread_id)
g_list_free(files);
/* autos */
- GList *autos = active_module->get_autos();
+ autos = active_module->get_autos();
update_variables(GTK_TREE_VIEW(atree), NULL, autos);
/* watches */
- GList *watches = active_module->get_watches();
+ watches = active_module->get_watches();
update_variables(GTK_TREE_VIEW(wtree), NULL, watches);
if (stack)
@@ -763,6 +777,10 @@ static void on_debugger_stopped (int thread_id)
*/
static void on_debugger_exited (int code)
{
+ GtkTextIter start, end;
+ GtkTextBuffer *buffer;
+ GList *iter;
+
/* remove marker for current instruction if was set */
if (stack)
{
@@ -785,8 +803,7 @@ static void on_debugger_exited (int code)
vte_terminal_reset(VTE_TERMINAL(terminal), TRUE, TRUE);
/* clear debug messages window */
- GtkTextIter start, end;
- GtkTextBuffer *buffer = gtk_text_view_get_buffer(GTK_TEXT_VIEW(debugger_messages_textview));
+ buffer = gtk_text_view_get_buffer(GTK_TEXT_VIEW(debugger_messages_textview));
gtk_text_buffer_get_bounds(buffer, &start, &end);
gtk_text_buffer_delete(buffer, &start, &end);
@@ -798,8 +815,7 @@ static void on_debugger_exited (int code)
bptree_set_readonly(FALSE);
/* set files that was readonly during debug writable */
- GList *iter = read_only_pages;
- while (iter)
+ for (iter = read_only_pages; iter; iter = iter->next)
{
GeanyDocument *doc = document_find_by_real_path((const gchar*)iter->data);
if (doc)
@@ -807,8 +823,6 @@ static void on_debugger_exited (int code)
/* free file name */
g_free(iter->data);
-
- iter = iter->next;
}
g_list_free(read_only_pages);
read_only_pages = NULL;
@@ -902,6 +916,7 @@ static void on_thread_added (int thread_id)
*/
static void on_select_frame(int frame_number)
{
+ GList *autos, *watches;
frame *f = (frame*)g_list_nth(stack, active_module->get_active_frame())->data;
markers_remove_current_instruction(f->file, f->line);
markers_add_frame(f->file, f->line);
@@ -912,11 +927,11 @@ static void on_select_frame(int frame_number)
g_hash_table_remove_all(calltips);
/* autos */
- GList *autos = active_module->get_autos();
+ autos = active_module->get_autos();
update_variables(GTK_TREE_VIEW(atree), NULL, autos);
/* watches */
- GList *watches = active_module->get_watches();
+ watches = active_module->get_watches();
update_variables(GTK_TREE_VIEW(wtree), NULL, watches);
f = (frame*)g_list_nth(stack, frame_number)->data;
@@ -930,6 +945,13 @@ static void on_select_frame(int frame_number)
*/
void debug_init(void)
{
+ GtkWidget *scrollbar;
+ GtkWidget *hbox;
+ GKeyFile *config;
+ gchar *configfile;
+ gchar *font;
+ GtkTextBuffer *buffer;
+
/* create watch page */
wtree = wtree_init(on_watch_expanded_callback,
on_watch_dragged_callback,
@@ -979,11 +1001,11 @@ void debug_init(void)
grantpt(pty_master);
unlockpt(pty_master);
vte_terminal_set_pty(VTE_TERMINAL(terminal), pty_master);
- GtkWidget *scrollbar = gtk_vscrollbar_new(GTK_ADJUSTMENT(VTE_TERMINAL(terminal)->adjustment));
+ scrollbar = gtk_vscrollbar_new(GTK_ADJUSTMENT(VTE_TERMINAL(terminal)->adjustment));
GTK_WIDGET_UNSET_FLAGS(scrollbar, GTK_CAN_FOCUS);
tab_terminal = gtk_frame_new(NULL);
gtk_frame_set_shadow_type (GTK_FRAME(tab_terminal), GTK_SHADOW_NONE);
- GtkWidget *hbox = gtk_hbox_new(FALSE, 0);
+ hbox = gtk_hbox_new(FALSE, 0);
gtk_container_add(GTK_CONTAINER(tab_terminal), hbox);
gtk_box_pack_start(GTK_BOX(hbox), terminal, TRUE, TRUE, 0);
gtk_box_pack_start(GTK_BOX(hbox), scrollbar, FALSE, FALSE, 0);
@@ -992,10 +1014,10 @@ void debug_init(void)
gtk_widget_set_size_request(GTK_WIDGET(terminal), 10, 10);
vte_terminal_set_size(VTE_TERMINAL(terminal), 30, 1);
/* set terminal font. */
- GKeyFile *config = g_key_file_new();
- gchar *configfile = g_strconcat(geany_data->app->configdir, G_DIR_SEPARATOR_S, "geany.conf", NULL);
+ config = g_key_file_new();
+ configfile = g_strconcat(geany_data->app->configdir, G_DIR_SEPARATOR_S, "geany.conf", NULL);
g_key_file_load_from_file(config, configfile, G_KEY_FILE_NONE, NULL);
- gchar *font = utils_get_setting_string(config, "VTE", "font", "Monospace 10");
+ font = utils_get_setting_string(config, "VTE", "font", "Monospace 10");
vte_terminal_set_font_from_string (VTE_TERMINAL(terminal), font);
/* debug messages page */
@@ -1011,7 +1033,7 @@ void debug_init(void)
gtk_scrolled_window_add_with_viewport(GTK_SCROLLED_WINDOW(tab_messages), debugger_messages_textview);
/* create tex tags */
- GtkTextBuffer *buffer = gtk_text_view_get_buffer(GTK_TEXT_VIEW(debugger_messages_textview));
+ buffer = gtk_text_view_get_buffer(GTK_TEXT_VIEW(debugger_messages_textview));
gtk_text_buffer_create_tag(buffer, "black", "foreground", "#000000", NULL);
gtk_text_buffer_create_tag(buffer, "grey", "foreground", "#AAAAAA", NULL);
gtk_text_buffer_create_tag(buffer, "red", "foreground", "#FF0000", NULL);
@@ -1108,16 +1130,19 @@ void debug_run(void)
{
if (DBS_IDLE == debug_state)
{
- gchar *target = g_strstrip(tpage_get_target());
+ gchar *target, *commandline;
+ GList *env, *watches, *breaks;
+
+ target = g_strstrip(tpage_get_target());
if (!strlen(target))
{
g_free(target);
return;
}
- gchar *commandline = tpage_get_commandline();
- GList *env = tpage_get_environment();
- GList *watches = get_root_items(GTK_TREE_VIEW(wtree));
- GList *breaks = breaks_get_all();
+ commandline = tpage_get_commandline();
+ env = tpage_get_environment();
+ watches = get_root_items(GTK_TREE_VIEW(wtree));
+ breaks = breaks_get_all();
/* init selected debugger module */
active_module = modules[tpage_get_debug_module_index()].module;
Modified: debugger/src/dpaned.c
68 files changed, 39 insertions(+), 29 deletions(-)
===================================================================
@@ -93,9 +93,11 @@
*/
static void on_size_allocate(GtkWidget *widget,GdkRectangle *allocation, gpointer user_data)
{
+ int position;
+
DISCONNECT_ALLOCATED_PAGE_SIGNALS();
- int position = (allocation->width - 2 * HPANED_BORDER_WIDTH) * 0.5;
+ position = (allocation->width - 2 * HPANED_BORDER_WIDTH) * 0.5;
gtk_paned_set_position(GTK_PANED(hpaned), position);
}
@@ -106,9 +108,11 @@ static void on_page_added(GtkNotebook *notebook, GtkWidget *child, guint page_nu
{
gboolean is_left = (GTK_NOTEBOOK(debug_notebook_left) == notebook);
gboolean is_tabbed = config_get_tabbed();
-
- int *tabs = NULL;
+ int *tabs = NULL, *array, *new_tabs;
gsize length;
+ GtkWidget *page;
+ tab_id id;
+ int config_part;
if (!is_tabbed)
tabs = config_get_tabs(&length);
@@ -117,16 +121,15 @@ static void on_page_added(GtkNotebook *notebook, GtkWidget *child, guint page_nu
else
tabs = config_get_right_tabs(&length);
- int *array = g_malloc((length + 2) * sizeof(int));
- int *new_tabs = array + 1;
+ array = g_malloc((length + 2) * sizeof(int));
+ new_tabs = array + 1;
memcpy(new_tabs, tabs, length * sizeof(int));
memmove(new_tabs + page_num + 1, new_tabs + page_num, (length - page_num) * sizeof(int));
- GtkWidget *page = gtk_notebook_get_nth_page(GTK_NOTEBOOK(is_left ? debug_notebook_left : debug_notebook_right), page_num);
- tab_id id = tabs_get_tab_id(page);
+ page = gtk_notebook_get_nth_page(GTK_NOTEBOOK(is_left ? debug_notebook_left : debug_notebook_right), page_num);
+ id = tabs_get_tab_id(page);
new_tabs[page_num] = id;
- int config_part;
if (!is_tabbed)
config_part = CP_OT_TABS;
else if (is_left)
@@ -149,9 +152,15 @@ static void on_page_reordered(GtkNotebook *notebook, GtkWidget *child, guint pag
{
gboolean is_left = (GTK_NOTEBOOK(debug_notebook_left) == notebook);
gboolean is_tabbed = config_get_tabbed();
-
int *tabs = NULL;
gsize length;
+ int prev_index;
+ GtkWidget *page;
+ tab_id id;
+ int i, min, max;
+ int config_part_tabs;
+ int config_part_selected_index;
+ int *array;
if (!is_tabbed)
tabs = config_get_tabs(&length);
@@ -160,9 +169,8 @@ static void on_page_reordered(GtkNotebook *notebook, GtkWidget *child, guint pag
else
tabs = config_get_right_tabs(&length);
- int prev_index;
- GtkWidget *page = gtk_notebook_get_nth_page(GTK_NOTEBOOK(is_left ? debug_notebook_left : debug_notebook_right), page_num);
- tab_id id = tabs_get_tab_id(page);
+ page = gtk_notebook_get_nth_page(GTK_NOTEBOOK(is_left ? debug_notebook_left : debug_notebook_right), page_num);
+ id = tabs_get_tab_id(page);
for (prev_index = 0; prev_index < length; prev_index++)
{
if (id == tabs[prev_index])
@@ -171,7 +179,8 @@ static void on_page_reordered(GtkNotebook *notebook, GtkWidget *child, guint pag
}
}
- int i, min = MIN(prev_index, page_num), max = MAX(prev_index, page_num);
+ min = MIN(prev_index, page_num);
+ max = MAX(prev_index, page_num);
for (i = min; i < max; i++)
{
int tmp = tabs[i];
@@ -179,8 +188,6 @@ static void on_page_reordered(GtkNotebook *notebook, GtkWidget *child, guint pag
tabs[i + 1] = tmp;
}
- int config_part_tabs;
- int config_part_selected_index;
if (!is_tabbed)
{
config_part_tabs = CP_OT_TABS;
@@ -197,7 +204,7 @@ static void on_page_reordered(GtkNotebook *notebook, GtkWidget *child, guint pag
config_part_selected_index = CP_TT_RSELECTED;
}
- int *array = g_malloc((length + 1) * sizeof(int));
+ array = g_malloc((length + 1) * sizeof(int));
array[0] = length;
memcpy(array + 1, tabs, length * sizeof(int));
@@ -218,9 +225,9 @@ static void on_page_removed(GtkNotebook *notebook, GtkWidget *child, guint page_
{
gboolean is_left = (GTK_NOTEBOOK(debug_notebook_left) == notebook);
gboolean is_tabbed = config_get_tabbed();
-
int *tabs = NULL;
gsize length;
+ int config_part;
if (!is_tabbed)
tabs = config_get_tabs(&length);
@@ -233,7 +240,6 @@ static void on_page_removed(GtkNotebook *notebook, GtkWidget *child, guint page_
memmove(tabs + 1, tabs, (length - 1) * sizeof(int));
tabs[0] = length - 1;
- int config_part;
if (!is_tabbed)
config_part = CP_OT_TABS;
else if (is_left)
@@ -291,8 +297,7 @@ void dpaned_init(void)
gtk_paned_add1(GTK_PANED(hpaned), debug_notebook_left);
gtk_paned_add2(GTK_PANED(hpaned), debug_notebook_right);
- gboolean is_tabbed = config_get_tabbed();
- if (is_tabbed)
+ if (config_get_tabbed())
{
gsize length;
int *tab_ids, i;
@@ -330,12 +335,13 @@ void dpaned_init(void)
}
else
{
+ gsize i, length;
+ int *tab_ids;
+
g_object_ref(debug_notebook_right);
gtk_container_remove(GTK_CONTAINER(hpaned), debug_notebook_right);
- gsize length;
- int *tab_ids = config_get_tabs(&length);
- int i;
+ tab_ids = config_get_tabs(&length);
for (i = 0; i < length; i++)
{
GtkWidget *tab = tabs_get_tab((tab_id)tab_ids[i]);
@@ -379,12 +385,14 @@ void dpaned_set_tabbed(gboolean tabbed)
if (!tabbed)
{
+ gsize length;
+ int *tab_ids;
+ int i;
+
g_object_ref(debug_notebook_right);
gtk_container_remove(GTK_CONTAINER(hpaned), debug_notebook_right);
- gsize length;
- int *tab_ids = config_get_tabs(&length);
- int i;
+ tab_ids = config_get_tabs(&length);
for (i = 0; i < length; i++)
{
GtkWidget *tab = tabs_get_tab((tab_id)tab_ids[i]);
@@ -405,12 +413,14 @@ void dpaned_set_tabbed(gboolean tabbed)
}
else
{
+ gsize length;
+ int i;
+ int *tab_ids;
+
gtk_paned_add2(GTK_PANED(hpaned), debug_notebook_right);
g_object_unref(debug_notebook_right);
- gsize length;
- int *tab_ids = config_get_right_tabs(&length);
- int i;
+ tab_ids = config_get_right_tabs(&length);
for (i = 0; i < length; i++)
{
GtkWidget *tab = tabs_get_tab((tab_id)tab_ids[i]);
Modified: debugger/src/envtree.c
44 files changed, 25 insertions(+), 19 deletions(-)
===================================================================
@@ -75,10 +75,12 @@ enum
*/
static void add_empty_row(void)
{
+ GtkTreeIter empty;
+ GtkTreePath *path;
+
if (empty_row)
gtk_tree_row_reference_free(empty_row);
- GtkTreeIter empty;
gtk_list_store_append (store, &empty);
gtk_list_store_set (store, &empty,
NAME, "",
@@ -86,7 +88,7 @@ static void add_empty_row(void)
-1);
/* remeber reference */
- GtkTreePath *path = gtk_tree_model_get_path(GTK_TREE_MODEL(store), &empty);
+ path = gtk_tree_model_get_path(GTK_TREE_MODEL(store), &empty);
empty_row = gtk_tree_row_reference_new(GTK_TREE_MODEL(store), path);
gtk_tree_path_free(path);
}
@@ -110,13 +112,14 @@ static void delete_selected_rows(void)
if (1 != gtk_tree_selection_count_selected_rows(selection) ||
gtk_tree_path_compare((GtkTreePath*)rows->data, empty_path))
{
+ GtkTreePath *path;
/* get references to the selected rows and find out what to
select after deletion */
GList *references = NULL;
GList *iter = rows;
while (iter)
{
- GtkTreePath *path = (GtkTreePath*)iter->data;
+ path = (GtkTreePath*)iter->data;
if (!reference_to_select)
{
/* select upper sibling of the upper
@@ -145,10 +148,10 @@ static void delete_selected_rows(void)
iter = references;
while (iter)
{
+ GtkTreeIter titer;
GtkTreeRowReference *reference = (GtkTreeRowReference*)iter->data;
- GtkTreePath *path = gtk_tree_row_reference_get_path(reference);
+ path = gtk_tree_row_reference_get_path(reference);
- GtkTreeIter titer;
gtk_tree_model_get_iter(model, &titer, path);
gtk_list_store_remove(store, &titer);
@@ -158,7 +161,7 @@ static void delete_selected_rows(void)
/* set selection */
gtk_tree_selection_unselect_all(selection);
- GtkTreePath *path = gtk_tree_row_reference_get_path(reference_to_select);
+ path = gtk_tree_row_reference_get_path(reference_to_select);
gtk_tree_selection_select_path(selection, path);
gtk_tree_view_scroll_to_cell(GTK_TREE_VIEW(tree), path, NULL, TRUE, 0.5, 0.5);
gtk_tree_path_free(path);
@@ -183,13 +186,15 @@ static void delete_selected_rows(void)
*/
static gboolean on_envtree_keypressed(GtkWidget *widget, GdkEvent *event, gpointer user_data)
{
+ guint keyval;
+
/* do not allow deleting while debugging */
if(page_read_only)
return FALSE;
/* handling only Delete button pressing
that means "delete selected rows" */
- guint keyval = ((GdkEventKey*)event)->keyval;
+ keyval = ((GdkEventKey*)event)->keyval;
if (GDK_Delete == keyval)
{
@@ -231,10 +236,10 @@ static void on_render_value(GtkTreeViewColumn *tree_column,
*/
static void on_value_changed(GtkCellRendererText *renderer, gchar *path, gchar *new_text, gpointer user_data)
{
+ gchar *striped;
GtkTreeIter iter;
GtkTreePath *tree_path = gtk_tree_path_new_from_string (path);
-
- GtkTreePath *empty_path = gtk_tree_row_reference_get_path(empty_row);
+ GtkTreePath *empty_path = gtk_tree_row_reference_get_path(empty_row);
gboolean empty = !gtk_tree_path_compare(tree_path, empty_path);
gtk_tree_path_free(empty_path);
@@ -243,8 +248,7 @@ static void on_value_changed(GtkCellRendererText *renderer, gchar *path, gchar *
&iter,
tree_path);
- gchar *striped = g_strstrip(g_strdup(new_text));
-
+ striped = g_strstrip(g_strdup(new_text));
if (!strlen(striped))
{
/* if new value is empty string, if it's a new row - do nothig
@@ -336,10 +340,10 @@ static void on_value_editing_cancelled(GtkCellRenderer *renderer, gpointer user_
*/
static void on_name_changed(GtkCellRendererText *renderer, gchar *path, gchar *new_text, gpointer user_data)
{
+ gchar *oldvalue, *striped;
GtkTreeIter iter;
GtkTreePath *tree_path = gtk_tree_path_new_from_string (path);
GtkTreePath *empty_path = gtk_tree_row_reference_get_path(empty_row);
-
gboolean empty = !gtk_tree_path_compare(tree_path, empty_path);
gtk_tree_model_get_iter (
@@ -347,15 +351,13 @@ static void on_name_changed(GtkCellRendererText *renderer, gchar *path, gchar *n
&iter,
tree_path);
- gchar* oldvalue;
gtk_tree_model_get (
model,
&iter,
NAME, &oldvalue,
-1);
- gchar *striped = g_strstrip(g_strdup(new_text));
-
+ striped = g_strstrip(g_strdup(new_text));
if (!strlen(striped))
{
/* if name is empty - offer to delete variable */
@@ -368,7 +370,7 @@ static void on_name_changed(GtkCellRendererText *renderer, gchar *path, gchar *n
}
}
else if (strcmp(oldvalue, striped))
- {
+ {
gtk_list_store_set(store, &iter, NAME, striped, -1);
if (empty)
{
@@ -393,6 +395,10 @@ static void on_name_changed(GtkCellRendererText *renderer, gchar *path, gchar *n
*/
GtkWidget* envtree_init(void)
{
+ GtkCellRenderer *renderer;
+ GtkTreeViewColumn *column;
+ GtkTreeSelection *selection;
+
store = gtk_list_store_new (
N_COLUMNS,
G_TYPE_STRING,
@@ -422,15 +428,15 @@ GtkWidget* envtree_init(void)
gtk_tree_view_append_column (GTK_TREE_VIEW (tree), column_value);
/* Last invisible column */
- GtkCellRenderer *renderer = gtk_cell_renderer_text_new ();
- GtkTreeViewColumn *column = gtk_tree_view_column_new_with_attributes ("", renderer, "text", LAST_VISIBLE, NULL);
+ renderer = gtk_cell_renderer_text_new ();
+ column = gtk_tree_view_column_new_with_attributes ("", renderer, "text", LAST_VISIBLE, NULL);
gtk_tree_view_append_column (GTK_TREE_VIEW (tree), column);
/* add empty row */
add_empty_row();
/* set multiple selection */
- GtkTreeSelection *selection = gtk_tree_view_get_selection(GTK_TREE_VIEW(tree));
+ selection = gtk_tree_view_get_selection(GTK_TREE_VIEW(tree));
gtk_tree_selection_set_mode(selection, GTK_SELECTION_MULTIPLE);
return tree;
Modified: debugger/src/keys.c
6 files changed, 4 insertions(+), 2 deletions(-)
===================================================================
@@ -63,8 +63,10 @@
*/
gboolean keys_init(void)
{
+ int _index, count;
+
/* keys count */
- int count = 0;
+ count = 0;
while (keys[count++].key_name)
;
@@ -76,7 +78,7 @@ gboolean keys_init(void)
keys_callback);
/* add keys */
- int _index = 0;
+ _index = 0;
while (keys[_index].key_name)
{
keybindings_set_item(
Modified: debugger/src/plugin.c
6 files changed, 4 insertions(+), 2 deletions(-)
===================================================================
@@ -89,6 +89,9 @@ void on_paned_mode_changed(GtkToggleButton *button, gpointer user_data)
* Note: data is the same as geany_data. */
void plugin_init(GeanyData *data)
{
+ GtkWidget* vbox;
+ int i;
+
keys_init();
pixbufs_init();
@@ -116,7 +119,7 @@ void plugin_init(GeanyData *data)
dpaned_init();
tpage_pack_widgets(config_get_tabbed());
- GtkWidget* vbox = btnpanel_create(on_paned_mode_changed);
+ vbox = btnpanel_create(on_paned_mode_changed);
gtk_box_pack_start(GTK_BOX(hbox), dpaned_get_paned(), TRUE, TRUE, 0);
gtk_box_pack_start(GTK_BOX(hbox), vbox, FALSE, FALSE, 0);
@@ -137,7 +140,6 @@ void plugin_init(GeanyData *data)
);
/* set calltips for all currently opened documents */
- int i;
foreach_document(i)
{
scintilla_send_message(document_index(i)->editor->sci, SCI_SETMOUSEDWELLTIME, 500, 0);
Modified: debugger/src/stree.c
81 files changed, 48 insertions(+), 33 deletions(-)
===================================================================
@@ -106,12 +106,12 @@ static void on_frame_arrow_clicked(CellRendererFrameIcon *cell_renderer, gchar *
*/
static gboolean on_query_tooltip(GtkWidget *widget, gint x, gint y, gboolean keyboard_mode, GtkTooltip *tooltip, gpointer user_data)
{
+ GtkTreePath *tpath = NULL;
+ GtkTreeViewColumn *column = NULL;
gboolean show = FALSE;
int bx, by;
gtk_tree_view_convert_widget_to_bin_window_coords(GTK_TREE_VIEW(widget), x, y, &bx, &by);
- GtkTreePath *tpath = NULL;
- GtkTreeViewColumn *column = NULL;
if (gtk_tree_view_get_path_at_pos(GTK_TREE_VIEW(widget), bx, by, &tpath, &column, NULL, NULL))
{
if (2 == gtk_tree_path_get_depth(tpath))
@@ -121,10 +121,10 @@ static gboolean on_query_tooltip(GtkWidget *widget, gint x, gint y, gboolean key
if (column == gtk_tree_view_get_column(GTK_TREE_VIEW(widget), S_FILEPATH))
{
+ gchar *path = NULL;
GtkTreeIter iter;
gtk_tree_model_get_iter(model, &iter, tpath);
- gchar *path = NULL;
gtk_tree_model_get(model, &iter, S_FILEPATH, &path, -1);
gtk_tooltip_set_text(tooltip, path);
@@ -185,10 +185,11 @@ static void on_render_filename(GtkTreeViewColumn *tree_column, GtkCellRenderer *
if (1 != gtk_tree_path_get_depth(tpath))
{
+ const gchar *name;
gchar *path = NULL;
gtk_tree_model_get(model, iter, S_FILEPATH, &path, -1);
- const gchar *name = path ? g_basename(path) : NULL;
+ name = path ? g_basename(path) : NULL;
g_object_set(cell, "text", name ? name : path, NULL);
if (path)
@@ -223,13 +224,13 @@ static gboolean on_msgwin_button_press(GtkWidget *widget, GdkEventButton *event,
if (!gtk_tree_path_compare(pressed_path, selected_path))
{
+ gboolean have_source;
GtkTreeIter iter;
gtk_tree_model_get_iter (
model,
&iter,
pressed_path);
- gboolean have_source;
gtk_tree_model_get (
model,
&iter,
@@ -269,22 +270,26 @@ static gboolean on_msgwin_button_press(GtkWidget *widget, GdkEventButton *event,
*/
static void on_selection_changed(GtkTreeSelection *treeselection, gpointer user_data)
{
+ GList *rows;
+ GtkTreePath *path;
+
if (!gtk_tree_selection_count_selected_rows(treeselection))
{
return;
}
- GList *rows = gtk_tree_selection_get_selected_rows(treeselection, &model);
- GtkTreePath *path = (GtkTreePath*)rows->data;
+ rows = gtk_tree_selection_get_selected_rows(treeselection, &model);
+ path = (GtkTreePath*)rows->data;
if (2 == gtk_tree_path_get_depth(path))
{
+ gboolean have_source;
GtkTreeIter iter;
+
gtk_tree_model_get_iter (
model,
&iter,
path);
- gboolean have_source;
gtk_tree_model_get (
gtk_tree_view_get_model(GTK_TREE_VIEW(tree)),
&iter,
@@ -317,6 +322,9 @@ static void on_selection_changed(GtkTreeSelection *treeselection, gpointer user_
*/
GtkWidget* stree_init(move_to_line_cb ml, select_frame_cb sf)
{
+ GtkTreeViewColumn *column;
+ GtkCellRenderer *renderer;
+
move_to_line = ml;
select_frame = sf;
@@ -350,8 +358,6 @@ GtkWidget* stree_init(move_to_line_cb ml, select_frame_cb sf)
g_signal_connect(G_OBJECT(tree), "query-tooltip", G_CALLBACK (on_query_tooltip), NULL);
/* creating columns */
- GtkTreeViewColumn *column;
-
/* address */
column = gtk_tree_view_column_new();
gtk_tree_view_column_set_title(column, _("Address"));
@@ -364,35 +370,35 @@ GtkWidget* stree_init(move_to_line_cb ml, select_frame_cb sf)
gtk_tree_view_column_set_cell_data_func(column, renderer_arrow, on_render_arrow, NULL, NULL);
g_signal_connect (G_OBJECT(renderer_arrow), "clicked", G_CALLBACK(on_frame_arrow_clicked), NULL);
- GtkCellRenderer *renderer_address = gtk_cell_renderer_text_new ();
- gtk_tree_view_column_pack_start(column, renderer_address, TRUE);
- gtk_tree_view_column_set_attributes(column, renderer_address, "text", S_ADRESS, NULL);
+ renderer = gtk_cell_renderer_text_new ();
+ gtk_tree_view_column_pack_start(column, renderer, TRUE);
+ gtk_tree_view_column_set_attributes(column, renderer, "text", S_ADRESS, NULL);
gtk_tree_view_append_column (GTK_TREE_VIEW (tree), column);
/* function */
- GtkCellRenderer *renderer_function = gtk_cell_renderer_text_new ();
- column = gtk_tree_view_column_new_with_attributes (_("Function"), renderer_function, "text", S_FUNCTION, NULL);
+ renderer = gtk_cell_renderer_text_new ();
+ column = gtk_tree_view_column_new_with_attributes (_("Function"), renderer, "text", S_FUNCTION, NULL);
gtk_tree_view_column_set_resizable (column, TRUE);
gtk_tree_view_append_column (GTK_TREE_VIEW (tree), column);
/* file */
- GtkCellRenderer *renderer_file = gtk_cell_renderer_text_new ();
- column = gtk_tree_view_column_new_with_attributes (_("File"), renderer_file, NULL);
+ renderer = gtk_cell_renderer_text_new ();
+ column = gtk_tree_view_column_new_with_attributes (_("File"), renderer, NULL);
gtk_tree_view_column_set_resizable (column, TRUE);
gtk_tree_view_append_column (GTK_TREE_VIEW (tree), column);
- gtk_tree_view_column_set_cell_data_func(column, renderer_file, on_render_filename, NULL, NULL);
+ gtk_tree_view_column_set_cell_data_func(column, renderer, on_render_filename, NULL, NULL);
/* line */
- GtkCellRenderer *renderer_line = gtk_cell_renderer_text_new ();
- column = gtk_tree_view_column_new_with_attributes (_("Line"), renderer_line, "text", S_LINE, NULL);
- gtk_tree_view_column_set_cell_data_func(column, renderer_line, on_render_line, NULL, NULL);
+ renderer = gtk_cell_renderer_text_new ();
+ column = gtk_tree_view_column_new_with_attributes (_("Line"), renderer, "text", S_LINE, NULL);
+ gtk_tree_view_column_set_cell_data_func(column, renderer, on_render_line, NULL, NULL);
gtk_tree_view_column_set_resizable (column, TRUE);
gtk_tree_view_append_column (GTK_TREE_VIEW (tree), column);
/* Last invisible column */
- GtkCellRenderer *renderer_last = gtk_cell_renderer_text_new ();
- column = gtk_tree_view_column_new_with_attributes ("", renderer_last, "text", S_LAST_VISIBLE, NULL);
+ renderer = gtk_cell_renderer_text_new ();
+ column = gtk_tree_view_column_new_with_attributes ("", renderer, "text", S_LAST_VISIBLE, NULL);
gtk_tree_view_append_column (GTK_TREE_VIEW (tree), column);
/* create threads hash table */
@@ -412,12 +418,12 @@ GtkWidget* stree_init(move_to_line_cb ml, select_frame_cb sf)
void stree_add(frame *f)
{
GtkTreeRowReference *reference = (GtkTreeRowReference*)g_hash_table_lookup(threads, (gpointer)active_thread_id);
+ GtkTreeIter frame_iter;
GtkTreeIter thread_iter;
GtkTreePath *path = gtk_tree_row_reference_get_path(reference);
gtk_tree_model_get_iter(model, &thread_iter, path);
gtk_tree_path_free(path);
- GtkTreeIter frame_iter;
gtk_tree_store_insert_before(store, &frame_iter, &thread_iter, 0);
gtk_tree_store_set (store, &frame_iter,
@@ -443,23 +449,28 @@ void stree_clear(void)
*/
void stree_select_first_frame(gboolean make_active)
{
+ GtkTreeRowReference *reference;
+ GtkTreeIter thread_iter, frame_iter;
+ GtkTreePath *active_path;
+
gtk_tree_view_expand_all(GTK_TREE_VIEW(tree));
- GtkTreeRowReference *reference = (GtkTreeRowReference*)g_hash_table_lookup(threads, (gpointer)active_thread_id);
- GtkTreeIter thread_iter, frame_iter;
- GtkTreePath *active_path = gtk_tree_row_reference_get_path(reference);
+ reference = (GtkTreeRowReference*)g_hash_table_lookup(threads, (gpointer)active_thread_id);
+ active_path = gtk_tree_row_reference_get_path(reference);
gtk_tree_model_get_iter(model, &thread_iter, active_path);
gtk_tree_path_free(active_path);
if(gtk_tree_model_iter_children(model, &frame_iter, &thread_iter))
{
+ GtkTreePath* path;
+
if (make_active)
{
gtk_tree_store_set (store, &frame_iter, S_ACTIVE, TRUE, -1);
active_frame_index = 0;
}
- GtkTreePath* path = gtk_tree_model_get_path(model, &frame_iter);
-
+ path = gtk_tree_model_get_path(model, &frame_iter);
+
gtk_tree_selection_select_path (
gtk_tree_view_get_selection(GTK_TREE_VIEW(tree)),
path);
@@ -485,7 +496,11 @@ void stree_destroy(void)
*/
void stree_add_thread(int thread_id)
{
+ gchar *thread_label;
+ GtkTreePath *tpath;
+ GtkTreeRowReference *reference;
GtkTreeIter thread_iter, new_thread_iter;
+
if (gtk_tree_model_get_iter_first(model, &thread_iter))
{
GtkTreeIter *consecutive = NULL;
@@ -515,15 +530,15 @@ void stree_add_thread(int thread_id)
gtk_tree_store_append (store, &new_thread_iter, NULL);
}
- gchar *thread_label = g_strdup_printf(_("Thread %i"), thread_id);
+ thread_label = g_strdup_printf(_("Thread %i"), thread_id);
gtk_tree_store_set (store, &new_thread_iter,
S_ADRESS, thread_label,
S_THREAD_ID, thread_id,
-1);
g_free(thread_label);
- GtkTreePath *tpath = gtk_tree_model_get_path(model, &new_thread_iter);
- GtkTreeRowReference *reference = gtk_tree_row_reference_new(model, tpath);
+ tpath = gtk_tree_model_get_path(model, &new_thread_iter);
+ reference = gtk_tree_row_reference_new(model, tpath);
g_hash_table_insert(threads, (gpointer)(long)thread_id,(gpointer)reference);
gtk_tree_path_free(tpath);
}
@@ -552,12 +567,12 @@ void stree_remove_thread(int thread_id)
void stree_remove_frames(void)
{
GtkTreeRowReference *reference = (GtkTreeRowReference*)g_hash_table_lookup(threads, (gpointer)active_thread_id);
+ GtkTreeIter child;
GtkTreeIter thread_iter;
GtkTreePath *tpath = gtk_tree_row_reference_get_path(reference);
gtk_tree_model_get_iter(model, &thread_iter, tpath);
gtk_tree_path_free(tpath);
- GtkTreeIter child;
if (gtk_tree_model_iter_children(model, &child, &thread_iter))
{
while(gtk_tree_store_remove(GTK_TREE_STORE(model), &child))
Modified: debugger/src/tpage.c
57 files changed, 36 insertions(+), 21 deletions(-)
===================================================================
@@ -97,7 +97,11 @@ static void on_arguments_changed(GtkTextBuffer *textbuffer, gpointer user_data)
*/
static void on_target_browse_clicked(GtkButton *button, gpointer user_data)
{
+ gchar path[FILENAME_MAX];
+ const gchar *prevfile;
+ gchar *prevdir;
GtkWidget *dialog;
+
dialog = gtk_file_chooser_dialog_new (_("Choose target file"),
NULL,
GTK_FILE_CHOOSER_ACTION_OPEN,
@@ -105,10 +109,8 @@ static void on_target_browse_clicked(GtkButton *button, gpointer user_data)
GTK_STOCK_OPEN, GTK_RESPONSE_ACCEPT,
NULL);
- gchar path[FILENAME_MAX];
-
- const gchar *prevfile = gtk_entry_get_text(GTK_ENTRY(target_name));
- gchar *prevdir = g_path_get_dirname(prevfile);
+ prevfile = gtk_entry_get_text(GTK_ENTRY(target_name));
+ prevdir = g_path_get_dirname(prevfile);
if (strcmp(".", prevdir))
strcpy(path, prevdir);
else
@@ -139,10 +141,12 @@ void tpage_pack_widgets(gboolean tabbed)
GList *children = gtk_container_get_children(GTK_CONTAINER(tab_target));
if (children)
{
+ int i;
+
oldroot = (GtkWidget*)children->data;
/* unparent widgets */
- int i = 0;
+ i = 0;
while (widgets[i])
{
g_object_ref(*widgets[i]);
@@ -155,11 +159,13 @@ void tpage_pack_widgets(gboolean tabbed)
if (tabbed)
{
+ GtkWidget *hbox, *rbox, *lbox;
+
root = gtk_vbox_new(FALSE, SPACING);
gtk_container_set_border_width(GTK_CONTAINER(root), ROOT_BORDER_WIDTH);
/* filename */
- GtkWidget *hbox = gtk_hbox_new(FALSE, SPACING);
+ hbox = gtk_hbox_new(FALSE, SPACING);
gtk_box_pack_start(GTK_BOX(root), hbox, FALSE, FALSE, 0);
gtk_box_pack_start(GTK_BOX(hbox), target_label, FALSE, FALSE, 0);
gtk_box_pack_start(GTK_BOX(hbox), target_name, TRUE, TRUE, 0);
@@ -170,8 +176,8 @@ void tpage_pack_widgets(gboolean tabbed)
gtk_box_pack_start(GTK_BOX(root), hbox, TRUE, TRUE, 0);
/* lower left and right vboxes */
- GtkWidget *lbox = gtk_vbox_new(FALSE, SPACING);
- GtkWidget *rbox = gtk_vbox_new(FALSE, SPACING);
+ lbox = gtk_vbox_new(FALSE, SPACING);
+ rbox = gtk_vbox_new(FALSE, SPACING);
gtk_box_pack_start(GTK_BOX(hbox), lbox, TRUE, TRUE, 0);
gtk_box_pack_start(GTK_BOX(hbox), rbox, TRUE, TRUE, 0);
@@ -188,11 +194,13 @@ void tpage_pack_widgets(gboolean tabbed)
}
else
{
+ GtkWidget *lbox, *rbox, *hbox;
+
root = gtk_hbox_new(TRUE, SPACING);
gtk_container_set_border_width(GTK_CONTAINER(root), ROOT_BORDER_WIDTH);
- GtkWidget *lbox = gtk_vbox_new(FALSE, SPACING);
- GtkWidget *rbox = gtk_vbox_new(FALSE, SPACING);
+ lbox = gtk_vbox_new(FALSE, SPACING);
+ rbox = gtk_vbox_new(FALSE, SPACING);
gtk_box_pack_start(GTK_BOX(root), lbox, TRUE, TRUE, 0);
gtk_box_pack_start(GTK_BOX(root), rbox, TRUE, TRUE, 0);
@@ -200,7 +208,7 @@ void tpage_pack_widgets(gboolean tabbed)
gtk_box_pack_start(GTK_BOX(lbox), env_frame, TRUE, TRUE, 0);
/* target */
- GtkWidget *hbox = gtk_hbox_new(FALSE, SPACING);
+ hbox = gtk_hbox_new(FALSE, SPACING);
gtk_box_pack_start(GTK_BOX(hbox), target_label, FALSE, FALSE, 0);
gtk_box_pack_start(GTK_BOX(hbox), target_name, TRUE, TRUE, 0);
gtk_box_pack_start(GTK_BOX(hbox), target_button_browse, FALSE, FALSE, 0);
@@ -234,6 +242,11 @@ void tpage_pack_widgets(gboolean tabbed)
*/
static void tpage_create_widgets(void)
{
+ GList *modules, *iter;
+ GtkWidget *hbox;
+ GtkTextBuffer *buffer;
+ GtkWidget *tree;
+
/* target */
target_label = gtk_label_new(_("Target:"));
target_name = gtk_entry_new ();
@@ -245,23 +258,21 @@ static void tpage_create_widgets(void)
/* debugger */
debugger_label = gtk_label_new(_("Debugger:"));
debugger_cmb = gtk_combo_box_new_text();
- GList *modules = debug_get_modules();
- GList *iter = modules;
- while (iter)
+ modules = debug_get_modules();
+ for (iter = modules; iter; iter = iter->next)
{
gtk_combo_box_append_text(GTK_COMBO_BOX(debugger_cmb), (gchar*)iter->data);
- iter = iter->next;
}
g_list_free(modules);
gtk_combo_box_set_active(GTK_COMBO_BOX(debugger_cmb), 0);
/* arguments */
args_frame = gtk_frame_new(_("Command Line Arguments"));
- GtkWidget *hbox = gtk_hbox_new(FALSE, 0);
+ hbox = gtk_hbox_new(FALSE, 0);
gtk_container_set_border_width(GTK_CONTAINER(hbox), 5);
args_textview = gtk_text_view_new ();
gtk_text_view_set_wrap_mode(GTK_TEXT_VIEW(args_textview), GTK_WRAP_CHAR);
- GtkTextBuffer *buffer = gtk_text_view_get_buffer(GTK_TEXT_VIEW(args_textview));
+ buffer = gtk_text_view_get_buffer(GTK_TEXT_VIEW(args_textview));
g_signal_connect(G_OBJECT(buffer), "changed", G_CALLBACK (on_arguments_changed), NULL);
gtk_container_add(GTK_CONTAINER(hbox), args_textview);
gtk_container_add(GTK_CONTAINER(args_frame), hbox);
@@ -270,7 +281,7 @@ static void tpage_create_widgets(void)
env_frame = gtk_frame_new(_("Environment Variables"));
hbox = gtk_hbox_new(FALSE, 0);
gtk_container_set_border_width(GTK_CONTAINER(hbox), 5);
- GtkWidget *tree = envtree_init();
+ tree = envtree_init();
gtk_container_add(GTK_CONTAINER(hbox), tree);
gtk_container_add(GTK_CONTAINER(env_frame), hbox);
}
@@ -318,6 +329,8 @@ void tpage_add_environment(const gchar *name, const gchar *value)
*/
void tpage_clear(void)
{
+ GtkTextBuffer *buffer;
+
/* target */
gtk_entry_set_text(GTK_ENTRY(target_name), "");
@@ -325,7 +338,7 @@ void tpage_clear(void)
gtk_combo_box_set_active(GTK_COMBO_BOX(debugger_cmb), 0);
/* arguments */
- GtkTextBuffer *buffer = gtk_text_view_get_buffer(GTK_TEXT_VIEW(args_textview));
+ buffer = gtk_text_view_get_buffer(GTK_TEXT_VIEW(args_textview));
gtk_text_buffer_set_text(buffer, "", -1);
/* environment variables */
@@ -361,14 +374,16 @@ gchar* tpage_get_debugger(void)
*/
gchar* tpage_get_commandline(void)
{
+ gchar *args;
+ gchar **lines;
GtkTextIter start, end;
GtkTextBuffer *buffer = gtk_text_view_get_buffer(GTK_TEXT_VIEW(args_textview));
gtk_text_buffer_get_start_iter(buffer, &start);
gtk_text_buffer_get_end_iter(buffer, &end);
- gchar *args = gtk_text_buffer_get_text(buffer, &start, &end, FALSE);
- gchar** lines = g_strsplit(args, "\n", 0);
+ args = gtk_text_buffer_get_text(buffer, &start, &end, FALSE);
+ lines = g_strsplit(args, "\n", 0);
g_free(args);
args = g_strjoinv(" ", lines);
g_strfreev(lines);
Modified: debugger/src/vtree.c
10 files changed, 6 insertions(+), 4 deletions(-)
===================================================================
@@ -91,9 +91,10 @@ void render_icon(GtkTreeViewColumn *tree_column,
if (VT_NONE != vt && VT_CHILD != vt)
{
+ GdkPixbuf *pixbuf = NULL;
+
g_object_set(cell, "visible", TRUE, NULL);
- GdkPixbuf *pixbuf = NULL;
if (VT_ARGUMENT == vt)
pixbuf = argument_pixbuf;
else if (VT_LOCAL == vt)
@@ -137,6 +138,9 @@ void render_value(GtkTreeViewColumn *tree_column,
GtkWidget* vtree_create(watch_render_name on_render_name, watch_expression_changed on_expression_changed)
{
/* create tree view */
+ GtkCellRenderer *renderer;
+ GtkCellRenderer *icon_renderer;
+ GtkTreeViewColumn *column;
GtkTreeStore* store = gtk_tree_store_new (
W_N_COLUMNS,
G_TYPE_STRING,
@@ -163,8 +167,6 @@ GtkWidget* vtree_create(watch_render_name on_render_name, watch_expression_chang
}
/* create columns */
- GtkCellRenderer *renderer;
- GtkTreeViewColumn *column;
/* Name */
column = gtk_tree_view_column_new();
@@ -174,7 +176,7 @@ GtkWidget* vtree_create(watch_render_name on_render_name, watch_expression_chang
gtk_tree_view_column_pack_end(column, renderer, TRUE);
gtk_tree_view_column_set_attributes(column, renderer, "text", W_NAME, NULL);
- GtkCellRenderer *icon_renderer = gtk_cell_renderer_pixbuf_new ();
+ icon_renderer = gtk_cell_renderer_pixbuf_new ();
g_object_set(icon_renderer, "follow-state", TRUE, NULL);
gtk_tree_view_column_pack_end(column, icon_renderer, FALSE);
gtk_tree_view_column_set_cell_data_func(column, icon_renderer, render_icon, NULL, NULL);
Modified: debugger/src/watch_model.c
27 files changed, 15 insertions(+), 12 deletions(-)
===================================================================
@@ -89,13 +89,13 @@ inline static void add_stub(GtkTreeStore *store, GtkTreeIter *parent)
inline static void append_variables(GtkTreeView *tree, GtkTreeIter *parent, GList *vars,
gboolean mark_changed, gboolean expand)
{
+ int current_position = 0;
GtkTreeModel *model = gtk_tree_view_get_model(tree);
GtkTreeStore *store = GTK_TREE_STORE(model);
-
GtkTreeIter child;
+ GHashTable *ht = NULL;
/* get existing rows */
- GHashTable *ht = NULL;
if (gtk_tree_model_iter_n_children(model, parent))
{
/* collect all existing rows */
@@ -117,7 +117,6 @@ inline static void append_variables(GtkTreeView *tree, GtkTreeIter *parent, GLis
while(gtk_tree_model_iter_next(model, &child));
}
- int current_position = 0;
while (vars)
{
variable *v = vars->data;
@@ -235,13 +234,13 @@ void expand_stub(GtkTreeView *tree, GtkTreeIter *parent, GList *vars)
{
GtkTreeModel *model = gtk_tree_view_get_model(tree);
GtkTreeStore *store = GTK_TREE_STORE(model);
+ GtkTreeIter stub;
+ gboolean changed;
/* remember stub iterator */
- GtkTreeIter stub;
gtk_tree_model_iter_children(model, &stub, parent);
/* check whether arent has been changed */
- gboolean changed;
gtk_tree_model_get(model, parent,
W_CHANGED, &changed,
-1);
@@ -306,11 +305,15 @@ void update_variables(GtkTreeView *tree, GtkTreeIter *parent, GList *vars)
/* if have children - lets check and update their values */
while (TRUE)
{
- /* set variable value
- 1. get the variable params */
gchar *name;
gchar *internal;
gchar *value;
+ GList *var;
@@ Diff output truncated at 100000 characters. @@
--------------
This E-Mail was brought to you by github_commit_mail.py (Source: TBD).
More information about the Plugins-Commits
mailing list