lists.geany.org
Sign In
Sign Up
Sign In
Sign Up
Manage this list
×
Keyboard Shortcuts
Thread View
j
: Next unread message
k
: Previous unread message
j a
: Jump to all threads
j l
: Jump to MailingList overview
2024
May
April
March
February
January
2023
December
November
October
September
August
July
June
May
April
March
February
January
2022
December
November
October
September
August
July
June
May
April
March
February
January
2021
December
November
October
September
August
July
June
May
April
March
February
January
2020
December
November
October
September
August
July
June
May
April
March
February
January
2019
December
November
October
September
August
July
June
May
April
March
February
January
2018
December
November
October
September
August
July
June
May
April
March
February
January
2017
December
November
October
September
August
July
June
May
April
March
February
January
2016
December
November
October
September
August
July
June
May
April
March
February
January
2015
December
November
October
September
August
July
June
May
April
March
February
January
2014
December
November
October
September
August
July
June
May
April
March
February
January
2013
December
November
October
September
August
July
June
May
April
March
February
January
2012
December
November
October
September
August
July
June
May
April
March
February
January
2011
December
November
October
September
August
July
June
May
April
March
February
January
2010
December
November
October
September
August
July
June
May
April
March
February
January
2009
December
November
October
September
August
July
June
May
April
March
February
January
2008
December
November
October
September
August
July
June
May
April
List overview
Plugins-Commits
June 2012
----- 2024 -----
May 2024
April 2024
March 2024
February 2024
January 2024
----- 2023 -----
December 2023
November 2023
October 2023
September 2023
August 2023
July 2023
June 2023
May 2023
April 2023
March 2023
February 2023
January 2023
----- 2022 -----
December 2022
November 2022
October 2022
September 2022
August 2022
July 2022
June 2022
May 2022
April 2022
March 2022
February 2022
January 2022
----- 2021 -----
December 2021
November 2021
October 2021
September 2021
August 2021
July 2021
June 2021
May 2021
April 2021
March 2021
February 2021
January 2021
----- 2020 -----
December 2020
November 2020
October 2020
September 2020
August 2020
July 2020
June 2020
May 2020
April 2020
March 2020
February 2020
January 2020
----- 2019 -----
December 2019
November 2019
October 2019
September 2019
August 2019
July 2019
June 2019
May 2019
April 2019
March 2019
February 2019
January 2019
----- 2018 -----
December 2018
November 2018
October 2018
September 2018
August 2018
July 2018
June 2018
May 2018
April 2018
March 2018
February 2018
January 2018
----- 2017 -----
December 2017
November 2017
October 2017
September 2017
August 2017
July 2017
June 2017
May 2017
April 2017
March 2017
February 2017
January 2017
----- 2016 -----
December 2016
November 2016
October 2016
September 2016
August 2016
July 2016
June 2016
May 2016
April 2016
March 2016
February 2016
January 2016
----- 2015 -----
December 2015
November 2015
October 2015
September 2015
August 2015
July 2015
June 2015
May 2015
April 2015
March 2015
February 2015
January 2015
----- 2014 -----
December 2014
November 2014
October 2014
September 2014
August 2014
July 2014
June 2014
May 2014
April 2014
March 2014
February 2014
January 2014
----- 2013 -----
December 2013
November 2013
October 2013
September 2013
August 2013
July 2013
June 2013
May 2013
April 2013
March 2013
February 2013
January 2013
----- 2012 -----
December 2012
November 2012
October 2012
September 2012
August 2012
July 2012
June 2012
May 2012
April 2012
March 2012
February 2012
January 2012
----- 2011 -----
December 2011
November 2011
October 2011
September 2011
August 2011
July 2011
June 2011
May 2011
April 2011
March 2011
February 2011
January 2011
----- 2010 -----
December 2010
November 2010
October 2010
September 2010
August 2010
July 2010
June 2010
May 2010
April 2010
March 2010
February 2010
January 2010
----- 2009 -----
December 2009
November 2009
October 2009
September 2009
August 2009
July 2009
June 2009
May 2009
April 2009
March 2009
February 2009
January 2009
----- 2008 -----
December 2008
November 2008
October 2008
September 2008
August 2008
July 2008
June 2008
May 2008
April 2008
plugins-commits@lists.geany.org
1 participants
93 discussions
Start a n
N
ew thread
[geany/geany-plugins] a03c5e: debugger: Include required headers from .h and self header in .c
by Colomban Wendling
08 Jun '12
08 Jun '12
Branch: refs/heads/master Author: Colomban Wendling <ban(a)herbesfolles.org> Committer: Colomban Wendling <ban(a)herbesfolles.org> Date: Fri, 08 Jun 2012 16:37:19 Commit: a03c5e23238fe075936ba18983d6826d7ba6be60
https://github.com/geany/geany-plugins/commit/a03c5e23238fe075936ba18983d68…
Log Message: ----------- debugger: Include required headers from .h and self header in .c Including all required headers in a .h is a good practice making using that header easier since you don't have to include some other headers you might not know about before. Also always include the header corresponding to the implementation, both for benefiting of forward declarations and to make sure both header and implementation actually matches. Modified Paths: -------------- debugger/src/atree.c debugger/src/atree.h debugger/src/bptree.h debugger/src/breakpoint.h debugger/src/breakpoints.h debugger/src/btnpanel.h debugger/src/callbacks.c debugger/src/callbacks.h debugger/src/calltip.h debugger/src/dconfig.h debugger/src/debug.h debugger/src/debug_module.h debugger/src/dpaned.c debugger/src/dpaned.h debugger/src/envtree.c debugger/src/envtree.h debugger/src/gui.c debugger/src/gui.h debugger/src/keys.h debugger/src/markers.c debugger/src/markers.h debugger/src/pixbuf.c debugger/src/pixbuf.h debugger/src/stree.c debugger/src/stree.h debugger/src/tabs.h debugger/src/tpage.h debugger/src/utils.c debugger/src/utils.h debugger/src/vtree.c debugger/src/vtree.h debugger/src/watch_model.h debugger/src/wtree.c debugger/src/wtree.h Modified: debugger/src/atree.c 1 files changed, 1 insertions(+), 0 deletions(-) =================================================================== @@ -25,6 +25,7 @@ #include <gtk/gtk.h> +#include "atree.h" #include "watch_model.h" #include "vtree.h" Modified: debugger/src/atree.h 4 files changed, 4 insertions(+), 0 deletions(-) =================================================================== @@ -22,6 +22,10 @@ #ifndef ATREE_H #define ATREE_H +#include <gtk/gtk.h> + +#include "watch_model.h" + GtkWidget* atree_init(watch_expanded_callback expanded, watch_button_pressed buttonpressed); #endif /* guard */ Modified: debugger/src/bptree.h 5 files changed, 5 insertions(+), 0 deletions(-) =================================================================== @@ -22,6 +22,11 @@ #ifndef BPTREE_H #define BPTREE_H +#include <glib.h> + +#include "breakpoint.h" +#include "breakpoints.h" + gboolean bptree_init(move_to_line_cb callback); void bptree_destroy(void); void bptree_add_breakpoint(breakpoint* bp); Modified: debugger/src/breakpoint.h 3 files changed, 3 insertions(+), 0 deletions(-) =================================================================== @@ -22,6 +22,9 @@ #ifndef BREAKPOINT_H #define BREAKPOINT_H +#include <glib.h> +#include <gtk/gtk.h> + /* maximum condition length */ #define CONDITION_MAX_LENGTH 1024 Modified: debugger/src/breakpoints.h 2 files changed, 2 insertions(+), 0 deletions(-) =================================================================== @@ -22,6 +22,8 @@ #ifndef BREAKPOINTS_H #define BREAKPOINTS_H +#include <glib.h> + #include "breakpoint.h" typedef enum _break_state { Modified: debugger/src/btnpanel.h 5 files changed, 5 insertions(+), 0 deletions(-) =================================================================== @@ -22,6 +22,11 @@ #ifndef BTNPANEL_H #define BTNPANEL_H +#include <glib.h> +#include <gtk/gtk.h> + +#include "debug_module.h" + typedef void (*on_toggle)(GtkToggleButton *button, gpointer user_data); GtkWidget* btnpanel_create(on_toggle cb); Modified: debugger/src/callbacks.c 1 files changed, 1 insertions(+), 0 deletions(-) =================================================================== @@ -31,6 +31,7 @@ #endif #include <geanyplugin.h> +#include "callbacks.h" #include "breakpoints.h" #include "debug.h" #include "keys.h" Modified: debugger/src/callbacks.h 4 files changed, 4 insertions(+), 0 deletions(-) =================================================================== @@ -22,6 +22,10 @@ #ifndef CALLBACKS_H #define CALLBACKS_H +#include <glib.h> +#include <glib-object.h> +#include "geanyplugin.h" + void on_document_open(GObject *obj, GeanyDocument *doc, gpointer user_data); void on_document_save(GObject *obj, GeanyDocument *doc, gpointer user_data); void on_document_before_save(GObject *obj, GeanyDocument *doc, gpointer user_data); Modified: debugger/src/calltip.h 4 files changed, 4 insertions(+), 0 deletions(-) =================================================================== @@ -22,6 +22,10 @@ #ifndef CALLTIP_H #define CALLTIP_H +#include <glib.h> + +#include "debug_module.h" + #define MAX_CALLTIP_LENGTH 140 #define MAX_CALLTIP_HEIGHT 20 Modified: debugger/src/dconfig.h 2 files changed, 2 insertions(+), 0 deletions(-) =================================================================== @@ -23,6 +23,8 @@ #define DCOFIG_H #include <stdarg.h> +#include <glib.h> +#include <gtk/gtk.h> /* panel config parts */ #define CP_TABBED_MODE 1 Modified: debugger/src/debug.h 2 files changed, 2 insertions(+), 0 deletions(-) =================================================================== @@ -22,6 +22,8 @@ #ifndef DEBUG_H #define DEBUG_H +#include <glib.h> + #include "debug_module.h" #include "markers.h" Modified: debugger/src/debug_module.h 4 files changed, 4 insertions(+), 0 deletions(-) =================================================================== @@ -22,6 +22,10 @@ #ifndef DEBUG_MODULE_H #define DEBUG_MODULE_H +#include <glib.h> + +#include "breakpoint.h" + /* debug states enumeration */ enum dbs { DBS_IDLE, Modified: debugger/src/dpaned.c 1 files changed, 1 insertions(+), 0 deletions(-) =================================================================== @@ -33,6 +33,7 @@ extern GeanyFunctions *geany_functions; extern GeanyData *geany_data; +#include "dpaned.h" #include "tabs.h" #include "breakpoints.h" #include "debug.h" Modified: debugger/src/dpaned.h 3 files changed, 3 insertions(+), 0 deletions(-) =================================================================== @@ -23,6 +23,9 @@ #ifndef DPANED_H #define DPANED_H +#include <glib.h> +#include <gtk/gtk.h> + void dpaned_init(void); void dpaned_destroy(void); GtkWidget* dpaned_get_paned(void); Modified: debugger/src/envtree.c 1 files changed, 1 insertions(+), 0 deletions(-) =================================================================== @@ -35,6 +35,7 @@ #include <gdk/gdkkeysyms.h> +#include "envtree.h" #include "dconfig.h" /* environment variables tree view columns */ Modified: debugger/src/envtree.h 3 files changed, 3 insertions(+), 0 deletions(-) =================================================================== @@ -22,6 +22,9 @@ #ifndef ENVTREE_H #define ENVTREE_H +#include <glib.h> +#include <gtk/gtk.h> + GtkWidget* envtree_init(void); void envtree_destroy(void); void envtree_clear(void); Modified: debugger/src/gui.c 2 files changed, 2 insertions(+), 0 deletions(-) =================================================================== @@ -25,6 +25,8 @@ #include <gtk/gtk.h> +#include "gui.h" + /* * creates a button with an icon from file and a tooltip */ Modified: debugger/src/gui.h 3 files changed, 3 insertions(+), 0 deletions(-) =================================================================== @@ -22,6 +22,9 @@ #ifndef GUI_H #define GUI_H +#include <glib.h> +#include <gtk/gtk.h> + GtkWidget* create_button(const gchar *icon, const gchar *tooltip); GtkWidget* create_stock_button(const gchar *stockid, const gchar *tooltip); GtkWidget* create_toggle_button(const gchar *stockid, const gchar *tooltip); Modified: debugger/src/keys.h 2 files changed, 2 insertions(+), 0 deletions(-) =================================================================== @@ -22,6 +22,8 @@ #ifndef KEYS_H #define KEYS_H +#include <glib.h> + /* hotkeys enumeration */ enum KEYS { Modified: debugger/src/markers.c 1 files changed, 1 insertions(+), 0 deletions(-) =================================================================== @@ -29,6 +29,7 @@ extern GeanyFunctions *geany_functions; extern GeanyData *geany_data; +#include "markers.h" #include "breakpoints.h" #include "xpm/breakpoint.xpm" Modified: debugger/src/markers.h 4 files changed, 4 insertions(+), 0 deletions(-) =================================================================== @@ -22,6 +22,10 @@ #ifndef MARKERS_H #define MARKERS_H +#include "geanyplugin.h" + +#include "breakpoint.h" + void markers_init(void); void markers_set_for_document(ScintillaObject *sci); void markers_add_breakpoint(breakpoint* bp); Modified: debugger/src/pixbuf.c 2 files changed, 2 insertions(+), 0 deletions(-) =================================================================== @@ -25,6 +25,8 @@ #include <gtk/gtk.h> +#include "pixbuf.h" + #include "xpm/breakpoint.xpm" #include "xpm/breakpoint_disabled.xpm" #include "xpm/breakpoint_condition.xpm" Modified: debugger/src/pixbuf.h 2 files changed, 2 insertions(+), 0 deletions(-) =================================================================== @@ -22,6 +22,8 @@ #ifndef PIXBUF_H #define PIXBUF_H +#include <gdk-pixbuf/gdk-pixbuf.h> + extern GdkPixbuf *break_pixbuf; extern GdkPixbuf *break_disabled_pixbuf; extern GdkPixbuf *break_condition_pixbuf; Modified: debugger/src/stree.c 1 files changed, 1 insertions(+), 0 deletions(-) =================================================================== @@ -31,6 +31,7 @@ #endif #include <geanyplugin.h> +#include "stree.h" #include "breakpoints.h" #include "utils.h" #include "debug_module.h" Modified: debugger/src/stree.h 6 files changed, 6 insertions(+), 0 deletions(-) =================================================================== @@ -22,6 +22,12 @@ #ifndef STREE_H #define STREE_H +#include <glib.h> +#include <gtk/gtk.h> + +#include "breakpoints.h" +#include "debug_module.h" + GtkWidget* stree_init(move_to_line_cb ml, select_frame_cb sf); void stree_destroy(void); Modified: debugger/src/tabs.h 3 files changed, 3 insertions(+), 0 deletions(-) =================================================================== @@ -23,6 +23,9 @@ #ifndef TABS_H #define TABS_H +#include <glib.h> +#include <gtk/gtk.h> + typedef enum _tab_id { TID_TARGET, Modified: debugger/src/tpage.h 3 files changed, 3 insertions(+), 0 deletions(-) =================================================================== @@ -22,6 +22,9 @@ #ifndef TPAGE_H #define TPAGE_H +#include <glib.h> +#include <gtk/gtk.h> + void tpage_init(void); gchar* tpage_get_target(void); Modified: debugger/src/utils.c 2 files changed, 2 insertions(+), 0 deletions(-) =================================================================== @@ -38,6 +38,8 @@ #include <geanyplugin.h> extern GeanyFunctions *geany_functions; +#include "utils.h" + /* * opens position in a editor */ Modified: debugger/src/utils.h 2 files changed, 2 insertions(+), 0 deletions(-) =================================================================== @@ -22,6 +22,8 @@ #ifndef UTILS_H #define UTILS_H +#include <glib.h> + void editor_open_position(const char* file, int line); GString* get_word_at_position(ScintillaObject *sci, int position); Modified: debugger/src/vtree.c 1 files changed, 1 insertions(+), 0 deletions(-) =================================================================== @@ -33,6 +33,7 @@ #endif #include <geanyplugin.h> +#include "vtree.h" #include "breakpoint.h" #include "debug_module.h" #include "watch_model.h" Modified: debugger/src/vtree.h 4 files changed, 4 insertions(+), 0 deletions(-) =================================================================== @@ -22,6 +22,10 @@ #ifndef VTREE_H #define VTREE_H +#include <gtk/gtk.h> + +#include "watch_model.h" + GtkWidget* vtree_create(watch_render_name on_render_name, watch_expression_changed on_expression_changed); #endif /* guard */ Modified: debugger/src/watch_model.h 3 files changed, 3 insertions(+), 0 deletions(-) =================================================================== @@ -22,6 +22,9 @@ #ifndef WATCH_MODEL_H #define WATCH_MODEL_H +#include <glib.h> +#include <gtk/gtk.h> + /* tree view columns */ enum { Modified: debugger/src/wtree.c 1 files changed, 1 insertions(+), 0 deletions(-) =================================================================== @@ -26,6 +26,7 @@ #include <gtk/gtk.h> +#include "wtree.h" #include "watch_model.h" #include "vtree.h" #include "dconfig.h" Modified: debugger/src/wtree.h 5 files changed, 5 insertions(+), 0 deletions(-) =================================================================== @@ -22,6 +22,11 @@ #ifndef WTREE_H #define WTREE_H +#include <glib.h> +#include <gtk/gtk.h> + +#include "watch_model.h" + GtkWidget* wtree_init(watch_expanded_callback expanded, new_watch_dragged dragged, watch_key_pressed keypressed, @@ Diff output truncated at 100000 characters. @@ -------------- This E-Mail was brought to you by github_commit_mail.py (Source: TBD).
1
0
0
0
[geany/geany-plugins] e40d76: debugger: Mark local functions as static
by Colomban Wendling
08 Jun '12
08 Jun '12
Branch: refs/heads/master Author: Colomban Wendling <ban(a)herbesfolles.org> Committer: Colomban Wendling <ban(a)herbesfolles.org> Date: Fri, 08 Jun 2012 16:37:19 Commit: e40d760e77c670124c0f739a53b2a8daea42a19c
https://github.com/geany/geany-plugins/commit/e40d760e77c670124c0f739a53b2a…
Log Message: ----------- debugger: Mark local functions as static This prevents from polluting symbol table and may help the compiler to better optimize those functions. Modified Paths: -------------- debugger/src/bptree.c debugger/src/breakpoints.c debugger/src/btnpanel.c debugger/src/callbacks.c debugger/src/dbm_gdb.c debugger/src/dconfig.c debugger/src/debug.c debugger/src/plugin.c debugger/src/vtree.c debugger/src/watch_model.c debugger/src/wtree.c Modified: debugger/src/bptree.c 16 files changed, 8 insertions(+), 8 deletions(-) =================================================================== @@ -81,7 +81,7 @@ enum /* * gets tree row reference for an unsected row at the same depth */ -GtkTreeRowReference* get_unselected_sibling(GtkTreePath *path) +static GtkTreeRowReference* get_unselected_sibling(GtkTreePath *path) { GtkTreeRowReference *sibling = NULL; GtkTreeSelection *selection = gtk_tree_view_get_selection(GTK_TREE_VIEW(tree)); @@ -212,7 +212,7 @@ static void on_render_filename(GtkTreeViewColumn *tree_column, GtkCellRenderer * /* * hides file checkbox for breaks rows */ -void on_render_enable_for_file(GtkTreeViewColumn *tree_column, GtkCellRenderer *cell, GtkTreeModel *tree_model, +static void on_render_enable_for_file(GtkTreeViewColumn *tree_column, GtkCellRenderer *cell, GtkTreeModel *tree_model, GtkTreeIter *iter, gpointer data) { GtkTreePath *path = gtk_tree_model_get_path(model, iter); @@ -223,7 +223,7 @@ void on_render_enable_for_file(GtkTreeViewColumn *tree_column, GtkCellRenderer * /* * hides break pixbuf for file rows */ -void on_render_enable_break(GtkTreeViewColumn *tree_column, GtkCellRenderer *cell, GtkTreeModel *tree_model, +static void on_render_enable_break(GtkTreeViewColumn *tree_column, GtkCellRenderer *cell, GtkTreeModel *tree_model, GtkTreeIter *iter, gpointer data) { GtkTreePath *path = gtk_tree_model_get_path(model, iter); @@ -234,7 +234,7 @@ void on_render_enable_break(GtkTreeViewColumn *tree_column, GtkCellRenderer *cel /* * makes condition and hitscount uneditable and empty for file rows */ -void on_render(GtkTreeViewColumn *tree_column, GtkCellRenderer *cell, GtkTreeModel *tree_model, +static void on_render(GtkTreeViewColumn *tree_column, GtkCellRenderer *cell, GtkTreeModel *tree_model, GtkTreeIter *iter, gpointer data) { GtkTreePath *path = gtk_tree_model_get_path(model, iter); @@ -296,7 +296,7 @@ static void on_row_double_click(GtkTreeView *tree_view, GtkTreePath *path, GtkTr /* * editing "condition" column value finished */ -void on_condition_changed(GtkCellRendererText *renderer, gchar *path, gchar *new_text, gpointer user_data) +static void on_condition_changed(GtkCellRendererText *renderer, gchar *path, gchar *new_text, gpointer user_data) { gchar *file; int line; @@ -335,7 +335,7 @@ void on_condition_changed(GtkCellRendererText *renderer, gchar *path, gchar *new /* * editing "hitscount" column value finished */ -void on_hitscount_changed(GtkCellRendererText *renderer, gchar *path, gchar *new_text, gpointer user_data) +static void on_hitscount_changed(GtkCellRendererText *renderer, gchar *path, gchar *new_text, gpointer user_data) { GtkTreeIter iter, parent_iter; GtkTreePath *tree_path; @@ -379,7 +379,7 @@ void on_hitscount_changed(GtkCellRendererText *renderer, gchar *path, gchar *new /* * enable / disable all breaks for a file when it's checkbox icon has been clicked */ -void on_enable_for_file(GtkCellRendererToggle *cell_renderer, gchar *path, gpointer user_data) +static void on_enable_for_file(GtkCellRendererToggle *cell_renderer, gchar *path, gpointer user_data) { GtkTreeIter iter; GtkTreePath *tree_path; @@ -419,7 +419,7 @@ void on_enable_for_file(GtkCellRendererToggle *cell_renderer, gchar *path, gpoin /* * enable / disable particulary break when it's icon has been clicked */ -void on_enable_break(CellRendererBreakIcon *cell_renderer, gchar *path, gpointer user_data) +static void on_enable_break(CellRendererBreakIcon *cell_renderer, gchar *path, gpointer user_data) { GtkTreeIter iter; GtkTreePath *tree_path; Modified: debugger/src/breakpoints.c 10 files changed, 5 insertions(+), 5 deletions(-) =================================================================== @@ -49,7 +49,7 @@ /* * Iterates through GTree for the particular file */ -gboolean tree_foreach_call_function(gpointer key, gpointer value, gpointer data) +static gboolean tree_foreach_call_function(gpointer key, gpointer value, gpointer data) { ((breaks_iterate_function)data)(value); return FALSE; @@ -58,7 +58,7 @@ gboolean tree_foreach_call_function(gpointer key, gpointer value, gpointer data) /* * Iterates through hash table of GTree-s */ -void hash_table_foreach_call_function(gpointer key, gpointer value, gpointer user_data) +static void hash_table_foreach_call_function(gpointer key, gpointer value, gpointer user_data) { g_tree_foreach((GTree*)value, tree_foreach_call_function, user_data); } @@ -67,7 +67,7 @@ void hash_table_foreach_call_function(gpointer key, gpointer value, gpointer use * Iterates through GTree * adding each item to GList that is passed through data variable */ -gboolean tree_foreach_add_to_list(gpointer key, gpointer value, gpointer data) +static gboolean tree_foreach_add_to_list(gpointer key, gpointer value, gpointer data) { GList **list = (GList**)data; *list = g_list_append(*list, value); @@ -78,7 +78,7 @@ gboolean tree_foreach_add_to_list(gpointer key, gpointer value, gpointer data) * Iterates through hash table of GTree-s * calling list collection functions on each tree */ -void hash_table_foreach_add_to_list(gpointer key, gpointer value, gpointer user_data) +static void hash_table_foreach_add_to_list(gpointer key, gpointer value, gpointer user_data) { g_tree_foreach((GTree*)value, tree_foreach_add_to_list, user_data); } @@ -170,7 +170,7 @@ static void on_remove_list(GList *list) * b - second integer * user_data - not used */ -gint compare_func(gconstpointer a, gconstpointer b, gpointer user_data) +static gint compare_func(gconstpointer a, gconstpointer b, gpointer user_data) { return GPOINTER_TO_INT(a) - GPOINTER_TO_INT(b); } Modified: debugger/src/btnpanel.c 4 files changed, 2 insertions(+), 2 deletions(-) =================================================================== @@ -60,7 +60,7 @@ /* * calls settings dialog */ -void on_settings(GtkButton *button, gpointer user_data) +static void on_settings(GtkButton *button, gpointer user_data) { plugin_show_configure(geany_plugin); } @@ -68,7 +68,7 @@ void on_settings(GtkButton *button, gpointer user_data) /* * gets current file and line and calls debug function */ -void on_execute_until(GtkButton *button, gpointer user_data) +static void on_execute_until(GtkButton *button, gpointer user_data) { GeanyDocument *doc = document_get_current(); if (doc) Modified: debugger/src/callbacks.c 2 files changed, 1 insertions(+), 1 deletions(-) =================================================================== @@ -49,7 +49,7 @@ /* * Set breakpoint and stack markers for a file */ -void set_markers_for_file(const gchar* file) +static void set_markers_for_file(const gchar* file) { GList *breaks; if ( (breaks = breaks_get_for_document(file)) ) Modified: debugger/src/dbm_gdb.c 82 files changed, 41 insertions(+), 41 deletions(-) =================================================================== @@ -122,16 +122,16 @@ enum sr { static int active_frame = 0; /* forward declarations */ -void stop(void); -variable* add_watch(gchar* expression); -void update_watches(void); -void update_autos(void); -void update_files(void); +static void stop(void); +static variable* add_watch(gchar* expression); +static void update_watches(void); +static void update_autos(void); +static void update_files(void); /* * print message using color, based on message type */ -void colorize_message(gchar *message) +static void colorize_message(gchar *message) { const gchar *color; if ('=' == *message) @@ -221,7 +221,7 @@ static GList* read_until_prompt(void) /* * write a command to a gdb channel and flush with a newlinw character */ -void gdb_input_write_line(const gchar *line) +static void gdb_input_write_line(const gchar *line) { GIOStatus st; GError *err = NULL; @@ -302,7 +302,7 @@ static GList* add_to_queue(GList* queue, const gchar *message, const gchar *comm * reads from startup async commands. * looks for a command completion (normal or abnormal), if noraml - executes next command */ -void exec_async_command(const gchar* command); +static void exec_async_command(const gchar* command); static gboolean on_read_async_output(GIOChannel * src, GIOCondition cond, gpointer data) { gchar *line; @@ -615,7 +615,7 @@ static gboolean on_read_from_gdb(GIOChannel * src, GIOCondition cond, gpointer d * connects reader to output channel and exits * after execution */ -void exec_async_command(const gchar* command) +static void exec_async_command(const gchar* command) { #ifdef DEBUG_OUTPUT dbg_cbs->send_message(command, "red"); @@ -632,7 +632,7 @@ void exec_async_command(const gchar* command) * i.e. reading output right * after execution */ -result_class exec_sync_command(const gchar* command, gboolean wait4prompt, gchar** command_record) +static result_class exec_sync_command(const gchar* command, gboolean wait4prompt, gchar** command_record) { GList *lines, *iter; result_class rc; @@ -708,7 +708,7 @@ result_class exec_sync_command(const gchar* command, gboolean wait4prompt, gchar /* * starts gdb, collects commands and start the first one */ -gboolean run(const gchar* file, const gchar* commandline, GList* env, GList *witer, GList *biter, const gchar* terminal_device, dbg_callbacks* callbacks) +static 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 }; @@ -888,7 +888,7 @@ gboolean run(const gchar* file, const gchar* commandline, GList* env, GList *wit /* * starts debugging */ -void restart(char* terminal_device) +static void restart(char* terminal_device) { dbg_cbs->clear_messages(); exec_async_command("-exec-run &"); @@ -897,7 +897,7 @@ void restart(char* terminal_device) /* * stops GDB */ -void stop(void) +static void stop(void) { exec_sync_command("-gdb-exit", FALSE, NULL); } @@ -905,7 +905,7 @@ void stop(void) /* * resumes GDB */ -void resume(void) +static void resume(void) { exec_async_command("-exec-continue"); } @@ -913,7 +913,7 @@ void resume(void) /* * step over */ -void step_over(void) +static void step_over(void) { exec_async_command("-exec-next"); } @@ -921,7 +921,7 @@ void step_over(void) /* * step into */ -void step_into(void) +static void step_into(void) { exec_async_command("-exec-step"); } @@ -929,7 +929,7 @@ void step_into(void) /* * step out */ -void step_out(void) +static void step_out(void) { exec_async_command("-exec-finish"); } @@ -937,7 +937,7 @@ void step_out(void) /* * execute until */ -void execute_until(const gchar *file, int line) +static void execute_until(const gchar *file, int line) { gchar command[1000]; sprintf(command, "-exec-until %s:%i", file, line); @@ -947,7 +947,7 @@ void execute_until(const gchar *file, int line) /* * gets breakpoint number by file and line */ -int get_break_number(char* file, int line) +static int get_break_number(char* file, int line) { gchar *record, *bstart; @@ -993,7 +993,7 @@ int get_break_number(char* file, int line) /* * set breakpoint */ -gboolean set_break(breakpoint* bp, break_set_activity bsa) +static gboolean set_break(breakpoint* bp, break_set_activity bsa) { char command[1000]; if (BSA_NEW_BREAK == bsa) @@ -1066,7 +1066,7 @@ gboolean set_break(breakpoint* bp, break_set_activity bsa) /* * removes breakpoint */ -gboolean remove_break(breakpoint* bp) +static gboolean remove_break(breakpoint* bp) { /* find break number */ int number = get_break_number(bp->file, bp->line); @@ -1086,7 +1086,7 @@ gboolean remove_break(breakpoint* bp) /* * get active frame */ -int get_active_frame(void) +static int get_active_frame(void) { return active_frame; } @@ -1094,7 +1094,7 @@ int get_active_frame(void) /* * select frame */ -void set_active_frame(int frame_number) +static void set_active_frame(int frame_number) { gchar *command = g_strdup_printf("-stack-select-frame %i", frame_number); if (RC_DONE == exec_sync_command(command, TRUE, NULL)) @@ -1109,7 +1109,7 @@ void set_active_frame(int frame_number) /* * gets stack */ -GList* get_stack(void) +static GList* get_stack(void) { gchar* record = NULL; GList *stack = NULL; @@ -1204,7 +1204,7 @@ GList* get_stack(void) * unescapes hex values (\0xXXX) to readable chars * converting it from wide character value to char */ -gchar* unescape_hex_values(gchar *src) +static gchar* unescape_hex_values(gchar *src) { GString *dest = g_string_new(""); @@ -1255,7 +1255,7 @@ gchar* unescape_hex_values(gchar *src) * checks if pc pointer points to the * valid printable charater */ -gboolean isvalidcharacter(gchar *pc, gboolean utf8) +static gboolean isvalidcharacter(gchar *pc, gboolean utf8) { if (utf8) return -1 != g_utf8_get_char_validated(pc, -1); @@ -1266,7 +1266,7 @@ gboolean isvalidcharacter(gchar *pc, gboolean utf8) /* * unescapes string, handles octal characters representations */ -gchar* unescape_octal_values(gchar *text) +static gchar* unescape_octal_values(gchar *text) { GString *value = g_string_new(""); @@ -1317,7 +1317,7 @@ gchar* unescape_octal_values(gchar *text) /* * unescapes value string, handles hexidecimal and octal characters representations */ -gchar *unescape(gchar *text) +static gchar *unescape(gchar *text) { gchar *retval = NULL; @@ -1342,7 +1342,7 @@ gchar *unescape(gchar *text) /* * updates variables from vars list */ -void get_variables (GList *vars) +static void get_variables (GList *vars) { while (vars) { @@ -1409,7 +1409,7 @@ void get_variables (GList *vars) /* * updates files list */ -void update_files(void) +static void update_files(void) { GHashTable *ht = g_hash_table_new_full(g_str_hash, g_str_equal, NULL, NULL); gchar *record = NULL; @@ -1445,7 +1445,7 @@ void update_files(void) /* * updates watches list */ -void update_watches(void) +static void update_watches(void) { gchar command[1000]; GList *updating = NULL; @@ -1512,7 +1512,7 @@ void update_watches(void) /* * updates autos list */ -void update_autos(void) +static void update_autos(void) { gchar command[1000]; GList *unevaluated = NULL, *iter; @@ -1594,7 +1594,7 @@ void update_autos(void) /* * get autos list */ -GList* get_autos (void) +static GList* get_autos (void) { return g_list_copy(autos); } @@ -1602,7 +1602,7 @@ GList* get_autos (void) /* * get watches list */ -GList* get_watches (void) +static GList* get_watches (void) { return g_list_copy(watches); } @@ -1610,7 +1610,7 @@ GList* get_watches (void) /* * get files list */ -GList* get_files (void) +static GList* get_files (void) { return g_list_copy(files); } @@ -1618,7 +1618,7 @@ GList* get_files (void) /* * get list of children */ -GList* get_children (gchar* path) +static GList* get_children (gchar* path) { GList *children = NULL; @@ -1683,7 +1683,7 @@ GList* get_children (gchar* path) /* * add new watch */ -variable* add_watch(gchar* expression) +static variable* add_watch(gchar* expression) { gchar command[1000]; gchar *record = NULL, *escaped, *pos; @@ -1720,7 +1720,7 @@ variable* add_watch(gchar* expression) /* * remove watch */ -void remove_watch(gchar* internal) +static void remove_watch(gchar* internal) { GList *iter = watches; while (iter) @@ -1741,7 +1741,7 @@ void remove_watch(gchar* internal) /* * evaluates given expression and returns the result */ -gchar *evaluate_expression(gchar *expression) +static gchar *evaluate_expression(gchar *expression) { gchar *record = NULL, *pos; char command[1000]; @@ -1765,7 +1765,7 @@ gchar *evaluate_expression(gchar *expression) /* * request GDB interrupt */ -gboolean request_interrupt(void) +static gboolean request_interrupt(void) { #ifdef DEBUG_OUTPUT char msg[1000]; @@ -1782,7 +1782,7 @@ gboolean request_interrupt(void) /* * get GDB error messages */ -gchar* error_message(void) +static gchar* error_message(void) { return err_message; } Modified: debugger/src/dconfig.c 10 files changed, 5 insertions(+), 5 deletions(-) =================================================================== @@ -79,7 +79,7 @@ /* * creates a copy of a specified keyfile */ -GKeyFile *create_copy_keyfile(GKeyFile *keyfile) +static GKeyFile *create_copy_keyfile(GKeyFile *keyfile) { gchar *path, *config_data; GKeyFile *copy; @@ -102,7 +102,7 @@ GKeyFile *create_copy_keyfile(GKeyFile *keyfile) /* * loads debug session from a keyfile and updates GUI */ -void debug_load_from_keyfile(GKeyFile *keyfile) +static void debug_load_from_keyfile(GKeyFile *keyfile) { gchar *value; int i, count; @@ -183,7 +183,7 @@ void debug_load_from_keyfile(GKeyFile *keyfile) /* * saves debug session to a keyfile using values from GUI */ -void save_to_keyfile(GKeyFile *keyfile) +static void save_to_keyfile(GKeyFile *keyfile) { GList *_env, *watches, *_breaks, *iter; int env_index, watch_index, bp_index; @@ -409,7 +409,7 @@ void config_set_panel(int config_part, gpointer config_value, ...) /* * set default debug session values to a keyfile */ -void config_set_debug_defaults(GKeyFile *keyfile) +static void config_set_debug_defaults(GKeyFile *keyfile) { g_key_file_set_string(keyfile, DEBUGGER_GROUP, "target", ""); g_key_file_set_string(keyfile, DEBUGGER_GROUP, "debugger", ""); @@ -423,7 +423,7 @@ void config_set_debug_defaults(GKeyFile *keyfile) /* * set default panel config values in a GKeyFile */ -void config_set_panel_defaults(GKeyFile *keyfile) +static void config_set_panel_defaults(GKeyFile *keyfile) { 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 }; Modified: debugger/src/debug.c 6 files changed, 3 insertions(+), 3 deletions(-) =================================================================== @@ -153,7 +153,7 @@ /* * remove stack margin markers */ - void remove_stack_markers(void) +static void remove_stack_markers(void) { int active_frame_index = active_module->get_active_frame(); @@ -502,7 +502,7 @@ static gboolean on_watch_key_pressed_callback(GtkWidget *widget, GdkEvent *even /* * mouse button has been pressed while being in watch(autos) tree view */ -gboolean on_watch_button_pressed_callback(GtkWidget *treeview, GdkEventButton *event, gpointer userdata) +static gboolean on_watch_button_pressed_callback(GtkWidget *treeview, GdkEventButton *event, gpointer userdata) { if (event->type == GDK_2BUTTON_PRESS && event->button == 1) { @@ -844,7 +844,7 @@ static void on_debugger_exited (int code) /* * called from debugger module to show a message in debugger messages pane */ -void on_debugger_message (const gchar* message, const gchar *color) +static void on_debugger_message (const gchar* message, const gchar *color) { gchar *msg = g_strdup_printf("%s\n", message); Modified: debugger/src/plugin.c 2 files changed, 1 insertions(+), 1 deletions(-) =================================================================== @@ -77,7 +77,7 @@ { NULL, NULL, FALSE, NULL } }; -void on_paned_mode_changed(GtkToggleButton *button, gpointer user_data) +static void on_paned_mode_changed(GtkToggleButton *button, gpointer user_data) { gboolean state = gtk_toggle_button_get_active(button); dpaned_set_tabbed(state); Modified: debugger/src/vtree.c 4 files changed, 2 insertions(+), 2 deletions(-) =================================================================== @@ -76,7 +76,7 @@ static gboolean on_key_pressed(GtkWidget *widget, GdkEvent *event, gpointer user /* * value rendere function */ -void render_icon(GtkTreeViewColumn *tree_column, +static void render_icon(GtkTreeViewColumn *tree_column, GtkCellRenderer *cell, GtkTreeModel *tree_model, GtkTreeIter *iter, @@ -113,7 +113,7 @@ void render_icon(GtkTreeViewColumn *tree_column, /* * value rendere function */ -void render_value(GtkTreeViewColumn *tree_column, +static void render_value(GtkTreeViewColumn *tree_column, GtkCellRenderer *cell, GtkTreeModel *tree_model, GtkTreeIter *iter, Modified: debugger/src/watch_model.c 2 files changed, 1 insertions(+), 1 deletions(-) =================================================================== @@ -213,7 +213,7 @@ void free_variables_list(GList *vars) /* * updates iterator according to variable */ -void update_variable(GtkTreeStore *store, GtkTreeIter *iter, variable *var, gboolean changed) +static void update_variable(GtkTreeStore *store, GtkTreeIter *iter, variable *var, gboolean changed) { gtk_tree_store_set (store, iter, W_NAME, var->name->str, Modified: debugger/src/wtree.c 2 files changed, 1 insertions(+), 1 deletions(-) =================================================================== @@ -123,7 +123,7 @@ GtkTreePath* wtree_empty_path(void) /* * iterating function to collect all watches */ -gboolean watches_foreach_collect(GtkTreeModel *_model, +static gboolean watches_foreach_collect(GtkTreeModel *_model, GtkTreePath *path, GtkTreeIter *iter, gpointer data) @@ Diff output truncated at 100000 characters. @@ -------------- This E-Mail was brought to you by github_commit_mail.py (Source: TBD).
1
0
0
0
[geany/geany-plugins] 36e60c: debugger: Remove a few redundant declarations
by Colomban Wendling
08 Jun '12
08 Jun '12
Branch: refs/heads/master Author: Colomban Wendling <ban(a)herbesfolles.org> Committer: Colomban Wendling <ban(a)herbesfolles.org> Date: Fri, 08 Jun 2012 16:37:19 Commit: 36e60cdb1091c285aac51732af2a82c47ab0be74
https://github.com/geany/geany-plugins/commit/36e60cdb1091c285aac51732af2a8…
Log Message: ----------- debugger: Remove a few redundant declarations Modified Paths: -------------- debugger/src/callbacks.c debugger/src/plugin.c Modified: debugger/src/callbacks.c 1 files changed, 0 insertions(+), 1 deletions(-) =================================================================== @@ -117,7 +117,6 @@ void on_document_before_save(GObject *obj, GeanyDocument *doc, gpointer user_dat /* * Occures on saving document */ -void on_document_open(GObject *obj, GeanyDocument *doc, gpointer user_data); void on_document_save(GObject *obj, GeanyDocument *doc, gpointer user_data) { if (_unexisting_file) Modified: debugger/src/plugin.c 1 files changed, 0 insertions(+), 1 deletions(-) =================================================================== @@ -84,7 +84,6 @@ static void on_paned_mode_changed(GtkToggleButton *button, gpointer user_data) tpage_pack_widgets(state); } -extern void config_on_project_open(GObject *obj, GKeyFile *config, gpointer user_data); /* Called by Geany to initialize the plugin. * Note: data is the same as geany_data. */ void plugin_init(GeanyData *data) @@ Diff output truncated at 100000 characters. @@ -------------- This E-Mail was brought to you by github_commit_mail.py (Source: TBD).
1
0
0
0
[geany/geany-plugins] e97043: debugger: Don't use deprecated functions
by Colomban Wendling
08 Jun '12
08 Jun '12
Branch: refs/heads/master Author: Colomban Wendling <ban(a)herbesfolles.org> Committer: Colomban Wendling <ban(a)herbesfolles.org> Date: Fri, 08 Jun 2012 16:37:19 Commit: e970439d0c38ee33889fc035346bdb7fe07e0612
https://github.com/geany/geany-plugins/commit/e970439d0c38ee33889fc035346bd…
Log Message: ----------- debugger: Don't use deprecated functions Modified Paths: -------------- debugger/src/bptree.c debugger/src/stree.c Modified: debugger/src/bptree.c 3 files changed, 2 insertions(+), 1 deletions(-) =================================================================== @@ -199,8 +199,9 @@ static void on_render_filename(GtkTreeViewColumn *tree_column, GtkCellRenderer * } else { - const gchar *name = g_basename(path); + gchar *name = g_path_get_basename(path); g_object_set(cell, "text", name ? name : path, NULL); + g_free(name); } if (path) Modified: debugger/src/stree.c 6 files changed, 3 insertions(+), 3 deletions(-) =================================================================== @@ -185,13 +185,13 @@ static void on_render_filename(GtkTreeViewColumn *tree_column, GtkCellRenderer * if (1 != gtk_tree_path_get_depth(tpath)) { - const gchar *name; - gchar *path = NULL; + gchar *path = NULL, *name; gtk_tree_model_get(model, iter, S_FILEPATH, &path, -1); - name = path ? g_basename(path) : NULL; + name = path ? g_path_get_basename(path) : NULL; g_object_set(cell, "text", name ? name : path, NULL); + g_free(name); if (path) { g_free(path); @@ Diff output truncated at 100000 characters. @@ -------------- This E-Mail was brought to you by github_commit_mail.py (Source: TBD).
1
0
0
0
[geany/geany-plugins] e6ce0d: debugger: Only initialize arrays with load-time computable values
by Colomban Wendling
08 Jun '12
08 Jun '12
Branch: refs/heads/master Author: Colomban Wendling <ban(a)herbesfolles.org> Committer: Colomban Wendling <ban(a)herbesfolles.org> Date: Fri, 08 Jun 2012 16:37:19 Commit: e6ce0d32080ecb2e32d80b39cbc91845ab753bce
https://github.com/geany/geany-plugins/commit/e6ce0d32080ecb2e32d80b39cbc91…
Log Message: ----------- debugger: Only initialize arrays with load-time computable values Modified Paths: -------------- debugger/src/cell_renderers/cellrendererbreakicon.c debugger/src/cell_renderers/cellrendererframeicon.c Modified: debugger/src/cell_renderers/cellrendererbreakicon.c 9 files changed, 7 insertions(+), 2 deletions(-) =================================================================== @@ -295,9 +295,14 @@ static void cell_renderer_break_icon_init (CellRendererBreakIcon *cell) static void cell_renderer_break_icon_finalize (GObject *object) { CellRendererBreakIcon *cell = (CellRendererBreakIcon*)object; - - GdkPixbuf *pixbufs[] = { cell->pixbuf_enabled, cell->pixbuf_disabled, cell->pixbuf_conditional, cell->pixbuf_file }; + GdkPixbuf *pixbufs[4]; int i; + + pixbufs[0] = cell->pixbuf_enabled; + pixbufs[1] = cell->pixbuf_disabled; + pixbufs[2] = cell->pixbuf_conditional; + pixbufs[3] = cell->pixbuf_file; + for(i = 0; i < 4; i++) { if (pixbufs[i]) Modified: debugger/src/cell_renderers/cellrendererframeicon.c 7 files changed, 5 insertions(+), 2 deletions(-) =================================================================== @@ -237,9 +237,12 @@ static void cell_renderer_frame_icon_init (CellRendererFrameIcon *cell) static void cell_renderer_frame_icon_finalize (GObject *object) { CellRendererFrameIcon *cell = (CellRendererFrameIcon*)object; - - GdkPixbuf *pixbufs[] = { cell->pixbuf_active, cell->pixbuf_highlighted }; + GdkPixbuf *pixbufs[2]; int i; + + pixbufs[0] = cell->pixbuf_active; + pixbufs[1] = cell->pixbuf_highlighted; + for(i = 0; i < 2; i++) { if (pixbufs[i]) @@ Diff output truncated at 100000 characters. @@ -------------- This E-Mail was brought to you by github_commit_mail.py (Source: TBD).
1
0
0
0
[geany/geany-plugins] 668505: debugger: Don't mix declaration and code for C89 compliance
by Colomban Wendling
08 Jun '12
08 Jun '12
Branch: refs/heads/master Author: Colomban Wendling <ban(a)herbesfolles.org> Committer: Colomban Wendling <ban(a)herbesfolles.org> Date: Fri, 08 Jun 2012 16:37:19 Commit: 66850521254776ac36a51051d1a6295e2eac8c82
https://github.com/geany/geany-plugins/commit/66850521254776ac36a51051d1a62…
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).
1
0
0
0
[geany/geany-plugins] 17d497: debugger: Re-implement create_copy_keyfile() without a temp file
by Colomban Wendling
08 Jun '12
08 Jun '12
Branch: refs/heads/master Author: Colomban Wendling <ban(a)herbesfolles.org> Committer: Colomban Wendling <ban(a)herbesfolles.org> Date: Fri, 08 Jun 2012 16:37:19 Commit: 17d497b5e2932b278004446558250ff239c548a9
https://github.com/geany/geany-plugins/commit/17d497b5e2932b278004446558250…
Log Message: ----------- debugger: Re-implement create_copy_keyfile() without a temp file Modified Paths: -------------- debugger/src/dconfig.c Modified: debugger/src/dconfig.c 16 files changed, 5 insertions(+), 11 deletions(-) =================================================================== @@ -81,20 +81,14 @@ */ static GKeyFile *create_copy_keyfile(GKeyFile *keyfile) { - gchar *path, *config_data; GKeyFile *copy; + gchar *data; + gsize length; - close(g_file_open_tmp(NULL, &path, NULL)); - - config_data = g_key_file_to_data(keyfile, NULL, NULL); - g_file_set_contents(path, config_data, -1, NULL); - g_free(config_data); - + data = g_key_file_to_data(keyfile, &length, NULL); copy = g_key_file_new(); - g_key_file_load_from_file(copy, path, G_KEY_FILE_NONE, NULL); - - g_remove(path); - g_free(path); + g_key_file_load_from_data(copy, data, length, G_KEY_FILE_NONE, NULL); + g_free(data); return copy; } @@ Diff output truncated at 100000 characters. @@ -------------- This E-Mail was brought to you by github_commit_mail.py (Source: TBD).
1
0
0
0
[geany/geany-plugins] b98b3d: debugger: Don't return aggregate values
by Colomban Wendling
08 Jun '12
08 Jun '12
Branch: refs/heads/master Author: Colomban Wendling <ban(a)herbesfolles.org> Committer: Colomban Wendling <ban(a)herbesfolles.org> Date: Fri, 08 Jun 2012 16:37:19 Commit: b98b3db2a22b52449a3ed9c36e7367f977e8151f
https://github.com/geany/geany-plugins/commit/b98b3db2a22b52449a3ed9c36e736…
Log Message: ----------- debugger: Don't return aggregate values Modified Paths: -------------- debugger/src/debug.c debugger/src/wtree.c debugger/src/wtree.h Modified: debugger/src/debug.c 9 files changed, 6 insertions(+), 3 deletions(-) =================================================================== @@ -347,7 +347,9 @@ static void on_watch_dragged_callback(GtkWidget *wgt, GdkDragContext *context, i } else { - GtkTreeIter empty = wtree_empty_row(); + GtkTreeIter empty; + + wtree_empty_row(&empty); gtk_tree_store_insert_before(wstore, &newvar, NULL, &empty); } @@ -522,8 +524,9 @@ static gboolean on_watch_button_pressed_callback(GtkWidget *treeview, GdkEventBu if (strlen(expression)) { - GtkTreeIter newvar; - GtkTreeIter empty = wtree_empty_row(); + GtkTreeIter newvar, empty; + + wtree_empty_row(&empty); gtk_tree_store_insert_before(wstore, &newvar, NULL, &empty); /* if debugger is active (in stopped condition) - add to run-time watch list Modified: debugger/src/wtree.c 12 files changed, 5 insertions(+), 7 deletions(-) =================================================================== @@ -99,17 +99,14 @@ static void on_render_name(GtkTreeViewColumn *tree_column, /* * get iterator to an empty row */ -GtkTreeIter wtree_empty_row(void) +void wtree_empty_row(GtkTreeIter *iter) { - GtkTreeIter empty; GtkTreePath *path = gtk_tree_row_reference_get_path(empty_row); gtk_tree_model_get_iter(gtk_tree_view_get_model(GTK_TREE_VIEW(tree)), - &empty, + iter, path); gtk_tree_path_free(path); - - return empty; } /* @@ -206,8 +203,9 @@ void wtree_remove_all(void) */ void wtree_add_watch(gchar *watch) { - GtkTreeIter newvar; - GtkTreeIter empty = wtree_empty_row(); + GtkTreeIter newvar, empty; + + wtree_empty_row(&empty); gtk_tree_store_insert_before(store, &newvar, NULL, &empty); variable_set_name_only(store, &newvar, watch); Modified: debugger/src/wtree.h 2 files changed, 1 insertions(+), 1 deletions(-) =================================================================== @@ -32,7 +32,7 @@ GtkWidget* wtree_init(watch_expanded_callback expanded, watch_key_pressed keypressed, watch_expression_changed changed, watch_button_pressed buttonpressed); -GtkTreeIter wtree_empty_row(void); +void wtree_empty_row(GtkTreeIter *iter); GtkTreePath* wtree_empty_path(void); GList* wtree_get_watches(void); void wtree_remove_all(void); @@ Diff output truncated at 100000 characters. @@ -------------- This E-Mail was brought to you by github_commit_mail.py (Source: TBD).
1
0
0
0
[geany/geany-plugins] ef7b31: debugger: Fix restart() signature in GDB module
by Colomban Wendling
08 Jun '12
08 Jun '12
Branch: refs/heads/master Author: Colomban Wendling <ban(a)herbesfolles.org> Committer: Colomban Wendling <ban(a)herbesfolles.org> Date: Fri, 08 Jun 2012 16:37:19 Commit: ef7b3156734a04af094572ebd52644e64e3484c5
https://github.com/geany/geany-plugins/commit/ef7b3156734a04af094572ebd5264…
Log Message: ----------- debugger: Fix restart() signature in GDB module Modified Paths: -------------- debugger/src/dbm_gdb.c Modified: debugger/src/dbm_gdb.c 2 files changed, 1 insertions(+), 1 deletions(-) =================================================================== @@ -888,7 +888,7 @@ static gboolean run(const gchar* file, const gchar* commandline, GList* env, GLi /* * starts debugging */ -static void restart(char* terminal_device) +static void restart(void) { dbg_cbs->clear_messages(); exec_async_command("-exec-run &"); @@ Diff output truncated at 100000 characters. @@ -------------- This E-Mail was brought to you by github_commit_mail.py (Source: TBD).
1
0
0
0
[geany/geany-plugins] 4c69a9: codenav: Use proper C prototypes
by Colomban Wendling
05 Jun '12
05 Jun '12
Branch: refs/heads/master Author: Colomban Wendling <ban(a)herbesfolles.org> Committer: Colomban Wendling <ban(a)herbesfolles.org> Date: Mon, 04 Jun 2012 23:10:06 Commit: 4c69a9c6b0e0fd382e6d41358d408de46a5b1cea
https://github.com/geany/geany-plugins/commit/4c69a9c6b0e0fd382e6d41358d408…
Log Message: ----------- codenav: Use proper C prototypes Modified Paths: -------------- codenav/src/codenavigation.h codenav/src/goto_file.c codenav/src/goto_file.h codenav/src/switch_head_impl.c codenav/src/switch_head_impl.h Modified: codenav/src/codenavigation.h 2 files changed, 1 insertions(+), 1 deletions(-) =================================================================== @@ -65,7 +65,7 @@ static void log_debug(const gchar* s, ...) #define log_func() g_print("[CODENAV FUNC] : %s", G_STRFUNC) #else static void log_debug(const gchar* s, ...) {} -static void log_func() {} +#define log_func() {} #endif /* IDs for keybindings */ Modified: codenav/src/goto_file.c 4 files changed, 2 insertions(+), 2 deletions(-) =================================================================== @@ -45,7 +45,7 @@ * --------------------------------------------------------------------- */ void -goto_file_init() +goto_file_init(void) { GtkWidget* edit_menu; @@ -77,7 +77,7 @@ * --------------------------------------------------------------------- */ void -goto_file_cleanup() +goto_file_cleanup(void) { log_func(); Modified: codenav/src/goto_file.h 4 files changed, 2 insertions(+), 2 deletions(-) =================================================================== @@ -27,10 +27,10 @@ /* Initialization */ void -goto_file_init(); +goto_file_init(void); /* Cleanup */ void -goto_file_cleanup(); +goto_file_cleanup(void); #endif /* GOTO_FILE_H */ Modified: codenav/src/switch_head_impl.c 10 files changed, 5 insertions(+), 5 deletions(-) =================================================================== @@ -54,7 +54,7 @@ /********************** Functions for the feature *********************/ static void -fill_default_languages_list(); +fill_default_languages_list(void); static void menu_item_activate(guint key_id); @@ -73,7 +73,7 @@ * --------------------------------------------------------------------- */ void -switch_head_impl_init() +switch_head_impl_init(void) { GtkWidget* edit_menu; @@ -108,7 +108,7 @@ * --------------------------------------------------------------------- */ void -switch_head_impl_cleanup() +switch_head_impl_cleanup(void) { GSList* iter = NULL; @@ -136,7 +136,7 @@ * --------------------------------------------------------------------- */ static void -fill_default_languages_list() +fill_default_languages_list(void) { Language* lang = NULL; @@ -445,7 +445,7 @@ /* ----- Finally, the configuration widget ----- */ GtkWidget* -switch_head_impl_config_widget() +switch_head_impl_config_widget(void) { GtkWidget *frame, *vbox, *tree_view; GtkWidget *hbox_buttons, *add_button, *remove_button; Modified: codenav/src/switch_head_impl.h 6 files changed, 3 insertions(+), 3 deletions(-) =================================================================== @@ -27,15 +27,15 @@ /* Initialization */ void -switch_head_impl_init(); +switch_head_impl_init(void); /* Cleanup */ void -switch_head_impl_cleanup(); +switch_head_impl_cleanup(void); /* Configuration widget */ GtkWidget* -switch_head_impl_config_widget(); +switch_head_impl_config_widget(void); /* Write the configuration of the feature */ void @@ Diff output truncated at 100000 characters. @@ -------------- This E-Mail was brought to you by github_commit_mail.py (Source: TBD).
1
0
0
0
← Newer
1
2
3
4
5
6
7
8
9
10
Older →
Jump to page:
1
2
3
4
5
6
7
8
9
10
Results per page:
10
25
50
100
200