Branch: refs/heads/master Author: Dimitar Zhekov dimitar.zhekov@gmail.com Committer: Dimitar Zhekov dimitar.zhekov@gmail.com Date: Thu, 03 Jan 2013 17:53:48 UTC Commit: f79165f314e091ba34b09738f425f15d1594328d https://github.com/geany/geany-plugins/commit/f79165f314e091ba34b09738f425f1...
Log Message: ----------- scope - mark all data views for update when a value is modified
Modified Paths: -------------- scope/ChangeLog scope/NEWS scope/NOTES scope/docs/codes.html scope/docs/scope.html scope/src/inspect.c scope/src/inspect.h scope/src/local.c scope/src/local.h scope/src/menu.c scope/src/menu.h scope/src/parse.c scope/src/scope.c scope/src/thread.c scope/src/utils.c scope/src/utils.h scope/src/views.c scope/src/views.h scope/src/watch.c scope/src/watch.h
Modified: scope/ChangeLog 15 files changed, 15 insertions(+), 0 deletions(-) =================================================================== @@ -1,3 +1,18 @@ +2013-01-02 Dimitar Zhekov dimitar.zhekov@gmail.com + + * docs/codes.html, src/inspect.c, src/inspect.h, src/local.c, + src/local.h, src/menu.c, src/menu.h, src/parse.c, src/views.c, + src/views.h, src/watch.c, src/watch.h: + Unified/simplified all "modified" tokens. The original version was + an overkill, and did not update all possible value references. + + * src/thread.c: + Small "modified" tokens unification related changes. + + * docs/scope.html, src/scope.c: + Increased version to 0.80. + + 2012-12-30 Dimitar Zhekov dimitar.zhekov@gmail.com
* src/break.c, src/inspect.c, src/stack.c, src/thread.c, src/utils.c,
Modified: scope/NEWS 9 files changed, 9 insertions(+), 0 deletions(-) =================================================================== @@ -1,3 +1,12 @@ +Scope 0.80 (2013-01-02) + + * Mark all data views for update when a value is modified. + Simpler and more reliable; generates a bit larger gdb traffic. + + * Select, focus and align tree elements as needed instead of simply + selecting. + + Scope 0.79 (2012-12-27)
* Easier sync between Scope/GDB thread/frame.
Modified: scope/NOTES 3 files changed, 1 insertions(+), 2 deletions(-) =================================================================== @@ -1,5 +1,4 @@ -modifying a local function argument refreshes all stack frames - it may be -a struct or reference argument in other frames +"^done,value="", '7' matches 07-var-assign, handled later as "^done", '7'
the only way to fix unnecessary inspect drop target expansion is to block INTO, so deriving GtkTreeStore and altering GtkTreeDragDest make no sense
Modified: scope/docs/codes.html 30 files changed, 12 insertions(+), 18 deletions(-) =================================================================== @@ -177,9 +177,17 @@ <td class="tab">auto/manual <em>Expand</em> inspect</td> <td class="tab">insert children, set range if needed</td></tr>
-<tr><td class="nowrap">07<scid>-var-assign</td> - <td class="tab">inspect value column edited</td> - <td class="tab">update inspect value</td></tr> +<tr><td class="nowrap">07-var-assign</td> + <td class="tab">inspect <em>Value</em> column edited</td> + <td class="tab">mark data views as dirty</td></tr> + +<tr><td class="nowrap">07-gdb-set</td> + <td class="tab">local <em>Modify</em> / <em>Value</em> column edited</td> + <td class="tab">-''-</td></tr> + +<tr><td class="nowrap">-''-</td> + <td class="tab">watch <em>Modify</em> / <em>Value</em> column edited</td> + <td class="tab">-''-</td></tr>
<tr><td class="nowrap">070<scid>-var-delete</td> <td class="tab">un-<em>Apply</em> inspect</td> @@ -191,21 +199,7 @@
<tr><td class="nowrap"> </td><td class="tab"> </td><td class="tab"> </td></tr>
-<tr><td class="nowrap">08-gdb-set</td> - <td class="tab">local <em>Modify</em> / <em>Value</em> column edited</td> - <td class="tab">mark locals as dirty</td></tr> - -<tr><td class="nowrap">08<tid>-gdb-set</td> - <td class="tab">08 for arg1 local variable</td> - <td class="tab">08 plus -stack-list-arguments --thread <tid></td></tr> - -<tr><td class="nowrap"> </td><td class="tab"> </td><td class="tab"> </td></tr> - -<tr><td class="nowrap">09<scid>-gdb-set</td> - <td class="tab">watch <em>Modify</em> / <em>Value</em> column edited</td> - <td class="tab">06<scid>-data-evaluate-expression</td></tr> - -<tr><td class="nowrap">09<scid>-data-evaluate-expression</td> +<tr><td class="nowrap">08<scid>-data-evaluate-expression</td> <td class="tab">popup <em>Evaluate/Modify</em></td> <td class="tab">command dialog with -gdb-set var expr=value</td></tr>
Modified: scope/docs/scope.html 2 files changed, 1 insertions(+), 1 deletions(-) =================================================================== @@ -685,7 +685,7 @@
<b><a name="copyright">Copyright</a></b>
-<p>Scope 0.79, Copyright (C) 2012 Dimitar Toshkov Zhekov</p> +<p>Scope 0.80, Copyright (C) 2012 Dimitar Toshkov Zhekov</p>
<p>The menu and toolbar icons are from <a href="http://netbeans.org">Netbeans</a>, except for BreakPoint.</p>
Modified: scope/src/inspect.c 37 files changed, 2 insertions(+), 35 deletions(-) =================================================================== @@ -408,25 +408,6 @@ void on_inspect_ndeleted(GArray *nodes) } }
-void on_inspect_value(GArray *nodes) -{ - const char *token = parse_grab_token(nodes); - GtkTreeIter iter; - - if (inspect_find(&iter, FALSE, token)) - { - const char *value = parse_lead_value(nodes); - gint hb_mode; - gchar *display; - - gtk_tree_model_get(model, &iter, INSPECT_HB_MODE, &hb_mode, -1); - display = utils_get_display_from_7bit(value, hb_mode); - gtk_tree_store_set(store, &iter, INSPECT_DISPLAY, display, INSPECT_VALUE, value, - -1); - g_free(display); - } -} - void on_inspect_path_expr(GArray *nodes) { const char *token = parse_grab_token(nodes); @@ -642,22 +623,8 @@ void inspect_add(const gchar *text) static void on_inspect_display_edited(G_GNUC_UNUSED GtkCellRendererText *renderer, gchar *path_str, gchar *new_text, G_GNUC_UNUSED gpointer gdata) { - if (validate_column(new_text, TRUE)) - { - if (debug_state() & DS_SENDABLE) - { - GtkTreeIter iter; - char *format; - - gtk_tree_model_get_iter_from_string(model, &iter, path_str); - format = g_strdup_printf("07%d%s", inspect_get_scid(&iter), - "-var-assign %s %s"); - view_display_edited(model, &iter, new_text, format); - g_free(format); - } - else - plugin_beep(); - } + view_display_edited(model, debug_state() & DS_SENDABLE, path_str, "07-var-assign %s %s", + new_text); }
static const TreeCell inspect_cells[] =
Modified: scope/src/inspect.h 1 files changed, 0 insertions(+), 1 deletions(-) =================================================================== @@ -23,7 +23,6 @@ void on_inspect_format(GArray *nodes); void on_inspect_children(GArray *nodes); void on_inspect_ndeleted(GArray *nodes); -void on_inspect_value(GArray *nodes); void on_inspect_path_expr(GArray *nodes); void on_inspect_changelist(GArray *nodes); void on_inspect_signal(const char *name);
Modified: scope/src/local.c 43 files changed, 5 insertions(+), 38 deletions(-) =================================================================== @@ -38,24 +38,8 @@ enum static void on_local_display_edited(G_GNUC_UNUSED GtkCellRendererText *renderer, gchar *path_str, gchar *new_text, G_GNUC_UNUSED gpointer gdata) { - if (validate_column(new_text, TRUE)) - { - if (thread_state >= THREAD_STOPPED && frame_id) - { - GtkTreeIter iter; - const char *arg1; - char *format; - - gtk_tree_model_get_iter_from_string(model, &iter, path_str); - gtk_tree_model_get(model, &iter, LOCAL_ARG1, &arg1, -1); - format = g_strdup_printf("08%s%s", arg1 ? thread_id : "", - "-gdb-set var %s=%s"); - view_display_edited(model, &iter, new_text, format); - g_free(format); - } - else - plugin_beep(); - } + view_display_edited(model, thread_state >= THREAD_STOPPED && frame_id, path_str, + "07-gdb-set var %s=%s", new_text); }
static const TreeCell local_cells[] = @@ -121,15 +105,6 @@ void on_local_variables(GArray *nodes) } }
-void on_local_modified(GArray *nodes) -{ - const char *token = parse_grab_token(nodes); - - view_dirty(VIEW_LOCALS); - if (!g_strcmp0(token, thread_id)) - debug_send_format(T, "04%s-stack-list-arguments 1", token); -} - void locals_clear(void) { gtk_list_store_clear(store); @@ -143,7 +118,7 @@ static void local_send_update(char token)
gboolean locals_update(void) { - if (view_stack_update()) + if (view_select_frame()) return FALSE;
if (frame_id) @@ -177,17 +152,9 @@ static void on_local_copy(const MenuItem *menu_item) menu_copy(selection, menu_item); }
-static void on_local_modify(G_GNUC_UNUSED const MenuItem *menu_item) +static void on_local_modify(const MenuItem *menu_item) { - GtkTreeIter iter; - const char *arg1; - char *prefix; - - gtk_tree_selection_get_selected(selection, NULL, &iter); - gtk_tree_model_get(model, &iter, LOCAL_ARG1, &arg1, -1); - prefix = g_strdup_printf("08%s", arg1 ? thread_id : ""); - menu_modify(model, &iter, prefix, menu_item ? MR_MODIFY : MR_MODSTR); - g_free(prefix); + menu_modify(selection, menu_item); }
static void on_local_watch(G_GNUC_UNUSED const MenuItem *menu_item)
Modified: scope/src/local.h 1 files changed, 0 insertions(+), 1 deletions(-) =================================================================== @@ -20,7 +20,6 @@ #ifndef LOCAL_H
void on_local_variables(GArray *nodes); -void on_local_modified(GArray *nodes);
void locals_clear(void); gboolean locals_update(void);
Modified: scope/src/menu.c 12 files changed, 8 insertions(+), 4 deletions(-) =================================================================== @@ -360,15 +360,19 @@ static void menu_evaluate_modify(const gchar *expr, const char *value, const gch } }
-void menu_modify(GtkTreeModel *model, GtkTreeIter *iter, const char *prefix, gint mr_mode) +void menu_modify(GtkTreeSelection *selection, const MenuItem *menu_item) { + GtkTreeModel *model; + GtkTreeIter iter; const gchar *name; const char *value; gint hb_mode;
- gtk_tree_model_get(model, iter, COLUMN_NAME, &name, COLUMN_VALUE, &value, COLUMN_HB_MODE, + gtk_tree_selection_get_selected(selection, &model, &iter); + gtk_tree_model_get(model, &iter, COLUMN_NAME, &name, COLUMN_VALUE, &value, COLUMN_HB_MODE, &hb_mode, -1); - menu_evaluate_modify(name, value, _("Modify"), hb_mode, mr_mode, prefix); + menu_evaluate_modify(name, value, _("Modify"), hb_mode, menu_item ? MR_MODIFY : MR_MODSTR, + "07"); }
void menu_inspect(GtkTreeSelection *selection) @@ -422,7 +426,7 @@ static void on_popup_evaluate(const MenuItem *menu_item)
g_free(input); eval_mr_mode = menu_item ? MR_MODIFY : MR_MODSTR; - input = debug_send_evaluate('9', ++scid_gen, expr); + input = debug_send_evaluate('8', ++scid_gen, expr); g_free(expr); }
Modified: scope/src/menu.h 2 files changed, 1 insertions(+), 1 deletions(-) =================================================================== @@ -82,7 +82,7 @@ void menu_mber_button_release(GtkTreeSelection *selection, GtkWidget *item, GdkEventButton *event, GtkWidget *menu);
void menu_copy(GtkTreeSelection *selection, const MenuItem *menu_item); -void menu_modify(GtkTreeModel *model, GtkTreeIter *iter, const char *prefix, gint mr_mode); +void menu_modify(GtkTreeSelection *selection, const MenuItem *menu_item); void menu_inspect(GtkTreeSelection *selection);
void on_menu_display_booleans(const MenuItem *menu_item);
Modified: scope/src/parse.c 11 files changed, 7 insertions(+), 4 deletions(-) =================================================================== @@ -40,6 +40,11 @@ static void on_quiet_error(G_GNUC_UNUSED GArray *nodes) plugin_blink(); }
+static void on_data_modified(G_GNUC_UNUSED GArray *nodes) +{ + views_data_dirty(); +} + typedef struct _ParseRoute { const char *prefix; @@ -81,8 +86,7 @@ static void on_quiet_error(G_GNUC_UNUSED GArray *nodes) { "^done,line="", on_debug_list_source, '2', '\0', 2 }, { "^done,value="", on_tooltip_value, '3', '\0', 1 }, { "^done,value="", on_watch_value, '6', '\0', 1 }, - { "^done,value="", on_inspect_value, '7', '\0', 1 }, - { "^done,value="", on_menu_evaluate_value, '9', '\0', 1 }, + { "^done,value="", on_menu_evaluate_value, '8', '\0', 1 }, { "^done,name="", on_inspect_variable, '7', '\0', 1 }, { "^done,format="", on_inspect_format, '7', '\0', 1 }, { "^done,numchild="", on_inspect_children, '7', '\0', 2 }, @@ -95,8 +99,7 @@ static void on_quiet_error(G_GNUC_UNUSED GArray *nodes) { "^done", on_debug_loaded, '1', '\0', 0 }, { "^done", on_break_done, '2', '\0', 0 }, { "^done", on_debug_auto_run, '5', '\0', 0 }, - { "^done", on_local_modified, '8', '\0', 0 }, - { "^done", on_watch_modified, '9', '\0', 0 }, + { "^done", on_data_modified, '7', '\0', 0 }, { "^error,", on_debug_load_error, '1', '\n', 0 }, { "^error,", on_tooltip_error, '3', '\0', 0 }, { "^error", on_quiet_error, '4', '\0', 0 },
Modified: scope/src/scope.c 2 files changed, 1 insertions(+), 1 deletions(-) =================================================================== @@ -32,7 +32,7 @@ PLUGIN_VERSION_CHECK(215)
PLUGIN_SET_TRANSLATABLE_INFO(LOCALEDIR, GETTEXT_PACKAGE, _("Scope Debugger"), - _("Simple GDB front-end."), "0.79" , "Dimitar Toshkov Zhekov dimitar.zhekov@gmail.com") + _("Simple GDB front-end."), "0.80" , "Dimitar Toshkov Zhekov dimitar.zhekov@gmail.com")
/* Keybinding(s) */ enum
Modified: scope/src/thread.c 12 files changed, 2 insertions(+), 10 deletions(-) =================================================================== @@ -326,11 +326,7 @@ static void thread_iter_stopped(GtkTreeIter *iter, StopData *sd) if (!addr) thread_state = THREAD_QUERY_FRAME;
- view_dirty(VIEW_STACK); - view_dirty(VIEW_LOCALS); - view_dirty(VIEW_WATCHES); - view_dirty(VIEW_INSPECT); - view_dirty(VIEW_TOOLTIP); + views_data_dirty(); } else if (!addr) view_dirty(VIEW_THREADS); @@ -688,11 +684,7 @@ static void on_thread_selection_changed(GtkTreeSelection *selection, thread_state = THREAD_BLANK; }
- view_dirty(VIEW_STACK); - view_dirty(VIEW_LOCALS); - view_dirty(VIEW_WATCHES); - view_dirty(VIEW_INSPECT); - view_dirty(VIEW_TOOLTIP); + views_data_dirty(); update_state(debug_state()); }
Modified: scope/src/utils.c 6 files changed, 3 insertions(+), 3 deletions(-) =================================================================== @@ -780,13 +780,13 @@ void utils_enter_to_clicked(GtkWidget *widget, GtkWidget *button) g_signal_connect(widget, "key-press-event", G_CALLBACK(on_widget_key_press), button); }
-void utils_tree_set_cursor(GtkTreeSelection *selection, GtkTreeIter *iter, gdouble align) +void utils_tree_set_cursor(GtkTreeSelection *selection, GtkTreeIter *iter, gdouble alignment) { GtkTreeView *tree = gtk_tree_selection_get_tree_view(selection); GtkTreePath *path = gtk_tree_model_get_path(gtk_tree_view_get_model(tree), iter);
- if (align >= 0) - gtk_tree_view_scroll_to_cell(tree, path, NULL, TRUE, align, 0); + if (alignment >= 0) + gtk_tree_view_scroll_to_cell(tree, path, NULL, TRUE, alignment, 0);
gtk_tree_view_set_cursor(tree, path, NULL, FALSE); gtk_tree_path_free(path);
Modified: scope/src/utils.h 2 files changed, 1 insertions(+), 1 deletions(-) =================================================================== @@ -110,7 +110,7 @@ enum
gchar *utils_text_buffer_get_text(GtkTextBuffer *text, gint maxlen); void utils_enter_to_clicked(GtkWidget *widget, GtkWidget *button); -void utils_tree_set_cursor(GtkTreeSelection *selection, GtkTreeIter *iter, gdouble align); +void utils_tree_set_cursor(GtkTreeSelection *selection, GtkTreeIter *iter, gdouble alignment);
void utils_finalize(void);
Modified: scope/src/views.c 46 files changed, 33 insertions(+), 13 deletions(-) =================================================================== @@ -51,6 +51,15 @@ void view_dirty(ViewIndex index) views[index].dirty = TRUE; }
+void views_data_dirty(void) +{ + view_dirty(VIEW_STACK); + view_dirty(VIEW_LOCALS); + view_dirty(VIEW_WATCHES); + view_dirty(VIEW_INSPECT); + view_dirty(VIEW_TOOLTIP); +} + static void view_update_unconditional(ViewIndex index, DebugState state) { ViewInfo *view = views + index; @@ -132,9 +141,9 @@ void views_update(DebugState state) } }
-gboolean view_stack_update(void) +gboolean view_select_frame(void) { - if (views[VIEW_STACK].dirty) + if (g_strcmp0(frame_id, "0") && views[VIEW_STACK].dirty) { DebugState state = thread_state >= THREAD_STOPPED ? DS_DEBUG : DS_READY; view_update_unconditional(VIEW_STACK, state); @@ -312,18 +321,29 @@ void view_set_line_data_func(const char *column, const char *cell, gint column_i GINT_TO_POINTER(column_id), NULL); }
-void view_display_edited(GtkTreeModel *model, GtkTreeIter *iter, const gchar *new_text, - const char *format) +void view_display_edited(GtkTreeModel *model, gboolean condition, const gchar *path_str, + const char *format, gchar *new_text) { - const char *name; - gint hb_mode; - char *locale; - - gtk_tree_model_get(model, iter, COLUMN_NAME, &name, COLUMN_HB_MODE, &hb_mode, -1); - locale = utils_get_locale_from_display(new_text, hb_mode); - utils_str_replace_all(&locale, "\n", " "); - debug_send_format(F, format, name, locale); - g_free(locale); + if (validate_column(new_text, TRUE)) + { + if (condition) + { + GtkTreeIter iter; + const char *name; + gint hb_mode; + char *locale; + + gtk_tree_model_get_iter_from_string(model, &iter, path_str); + gtk_tree_model_get(model, &iter, COLUMN_NAME, &name, COLUMN_HB_MODE, + &hb_mode, -1); + locale = utils_get_locale_from_display(new_text, hb_mode); + utils_str_replace_all(&locale, "\n", " "); + debug_send_format(F, format, name, locale); + g_free(locale); + } + else + plugin_blink(); + } }
void view_column_set_visible(const char *name, gboolean visible)
Modified: scope/src/views.h 7 files changed, 4 insertions(+), 3 deletions(-) =================================================================== @@ -35,9 +35,10 @@ } ViewIndex;
void view_dirty(ViewIndex index); +void views_data_dirty(void); void views_clear(void); void views_update(DebugState state); -gboolean view_stack_update(void); +gboolean view_select_frame(void); void view_inspect_update(void);
void on_view_changed(GtkNotebook *notebook, gpointer page, gint page_num, gpointer gdata); @@ -68,8 +69,8 @@ GtkTreeView *view_connect(const char *name, GtkTreeModel **model, GtkTreeSelecti gtk_tree_sortable_set_sort_func((sortable), (column), (compare), \ GINT_TO_POINTER(column), NULL) void view_set_line_data_func(const char *column, const char *cell, gint column_id); -void view_display_edited(GtkTreeModel *model, GtkTreeIter *iter, const gchar *new_text, - const char *format); +void view_display_edited(GtkTreeModel *model, gboolean condition, const gchar *path_str, + const char *format, gchar *new_text);
void view_column_set_visible(const char *name, gboolean visible); void view_seek_selected(GtkTreeSelection *selection, gboolean focus, SeekerType seeker);
Modified: scope/src/watch.c 49 files changed, 6 insertions(+), 43 deletions(-) =================================================================== @@ -62,11 +62,6 @@ static void watch_iter_update(GtkTreeIter *iter, gpointer gdata) g_free(debug_send_evaluate('6', scid, expr)); }
-static void watch_fetch(GtkTreeIter *iter) -{ - watch_iter_update(iter, GINT_TO_POINTER(TRUE)); -} - static void on_watch_expr_edited(G_GNUC_UNUSED GtkCellRendererText *renderer, gchar *path_str, gchar *new_text, G_GNUC_UNUSED gpointer gdata) { @@ -88,7 +83,7 @@ static void on_watch_expr_edited(G_GNUC_UNUSED GtkCellRendererText *renderer, pm->mr_mode, -1);
if (enabled && (debug_state() & DS_DEBUG)) - watch_fetch(&iter); + watch_iter_update(&iter, GINT_TO_POINTER(TRUE)); } } } @@ -96,23 +91,8 @@ static void on_watch_expr_edited(G_GNUC_UNUSED GtkCellRendererText *renderer, static void on_watch_display_edited(G_GNUC_UNUSED GtkCellRendererText *renderer, gchar *path_str, gchar *new_text, G_GNUC_UNUSED gpointer gdata) { - if (validate_column(new_text, TRUE)) - { - if (debug_state() & DS_SENDABLE) - { - GtkTreeIter iter; - gint scid; - char *format; - - gtk_tree_model_get_iter_from_string(model, &iter, path_str); - gtk_tree_model_get(model, &iter, WATCH_SCID, &scid, -1); - format = g_strdup_printf("09%d%s", scid, "-gdb-set var %s=%s"); - view_display_edited(model, &iter, new_text, format); - g_free(format); - } - else - plugin_beep(); - } + view_display_edited(model, debug_state() & DS_SENDABLE, path_str, "07-gdb-set var %s=%s", + new_text); }
static const TreeCell watch_cells[] = @@ -169,15 +149,6 @@ void on_watch_error(GArray *nodes) watch_set(nodes, parse_find_error(nodes), NULL); }
-void on_watch_modified(GArray *nodes) -{ - const char *token = parse_grab_token(nodes); - GtkTreeIter iter; - - iff (model_find(model, &iter, WATCH_SCID, token), "%s: w_scid not found", token) - watch_fetch(&iter); -} - static void watch_iter_clear(GtkTreeIter *iter, G_GNUC_UNUSED gpointer gdata) { gtk_list_store_set(store, iter, WATCH_DISPLAY, NULL, WATCH_VALUE, NULL, -1); @@ -190,7 +161,7 @@ void watches_clear(void)
gboolean watches_update(void) { - if (view_stack_update()) + if (view_select_frame()) return FALSE;
model_foreach(model, (GFunc) watch_iter_update, GPOINTER_TO_INT(FALSE)); @@ -213,7 +184,7 @@ void watch_add(const gchar *text) utils_tree_set_cursor(selection, &iter, 0.5);
if (debug_state() & DS_DEBUG) - watch_fetch(&iter); + watch_iter_update(&iter, NULL); }
g_free(expr); @@ -311,15 +282,7 @@ static void on_watch_copy(const MenuItem *menu_item)
static void on_watch_modify(const MenuItem *menu_item) { - GtkTreeIter iter; - gint scid; - char *prefix; - - gtk_tree_selection_get_selected(selection, NULL, &iter); - gtk_tree_model_get(model, &iter, WATCH_SCID, &scid, -1); - prefix = g_strdup_printf("09%d", scid); - menu_modify(model, &iter, prefix, menu_item ? MR_MODIFY : MR_MODSTR); - g_free(prefix); + menu_modify(selection, menu_item); }
static void on_watch_inspect(G_GNUC_UNUSED const MenuItem *menu_item)
Modified: scope/src/watch.h 1 files changed, 0 insertions(+), 1 deletions(-) =================================================================== @@ -21,7 +21,6 @@
void on_watch_value(GArray *nodes); void on_watch_error(GArray *nodes); -void on_watch_modified(GArray *nodes);
void watches_clear(void); gboolean watches_update(void);
-------------- This E-Mail was brought to you by github_commit_mail.py (Source: https://github.com/geany/infrastructure).