X-Git-Url: http://gitweb.hugovil.com/?a=blobdiff_plain;ds=sidebyside;f=src%2Fgtk%2Fregwin.c;h=d3fcb8dd042d3ec5c852a3360ecc76f5356a894b;hb=f7e3f1d8d0438f52e4f988a12318075cc1b43568;hp=0b027a5b739f6d1d78272fb096c174566b605dcd;hpb=3c838204cd78bcf106fdd65476180659ab629fcb;p=emu8051.git diff --git a/src/gtk/regwin.c b/src/gtk/regwin.c index 0b027a5..d3fcb8d 100644 --- a/src/gtk/regwin.c +++ b/src/gtk/regwin.c @@ -30,8 +30,7 @@ static GtkWidget *reglist; #define LIST_VIEW_NAME "Registers" #define DATA_ROWS SFR_REGS -enum -{ +enum { COL_NAME = 0, COL_VAL, N_COLUMNS, @@ -73,12 +72,11 @@ regwin_cell_edited(GtkCellRendererText *cell, gchar *path_string, (void) cell; /* Remove compiler warning about unused variables. */ - if (!model) { - g_error("Unable to get model from cell renderer"); - } + if (!model) + log_err("Unable to get model from cell renderer"); /* Get the iterator */ - gtk_tree_model_get_iter_from_string(model, &iter, path_string); + gtk_tree_model_get_iter_from_string(model, &iter, path_string); /* Get register name. */ gtk_tree_model_get(model, &iter, COL_NAME, &str, -1); @@ -90,10 +88,16 @@ regwin_cell_edited(GtkCellRendererText *cell, gchar *path_string, /* Read current (old) value. */ gtk_tree_model_get(model, &iter, COL_VAL, &str, -1); + /* No need to check error, has already been validated. */ old = asciihex2int(str); log_info(" old value: $%04X", old); new = asciihex2int(new_str); + if (asciihex2int_get_error()) { + log_warn(" new value: invalid"); + return; + } + log_info(" new value: $%04X", new); /* Store new value in emulator register (if in range). */ @@ -101,13 +105,14 @@ regwin_cell_edited(GtkCellRendererText *cell, gchar *path_string, if (rc == 0) { /* Store new value in gtk model. */ int2asciihex(new, str, regwin_infos->w); - gtk_list_store_set(GTK_LIST_STORE(model), &iter, COL_VAL, str, -1); + gtk_list_store_set(GTK_LIST_STORE(model), &iter, COL_VAL, str, + -1); /* * Make sure to update all windows. * For example, R0-R7 values depends on internal memory values. */ - emugtk_UpdateDisplay(); + emugtk_update_display(); } };