Commit ae34e941b2824f6947e31001aa8af33603883327
1 parent
975128fa
Exists in
master
and in
1 other branch
Backporting for old versions of glib.
Showing
2 changed files
with
41 additions
and
29 deletions
Show diff stats
src/dialogs/colorscheme.c
@@ -272,38 +272,49 @@ | @@ -272,38 +272,49 @@ | ||
272 | } | 272 | } |
273 | 273 | ||
274 | // Load color schemes. | 274 | // Load color schemes. |
275 | - g_autoptr(GKeyFile) conf = g_key_file_new(); | ||
276 | - g_autoptr(GError) err = NULL; | ||
277 | - int index = 0; | ||
278 | - gsize len; | ||
279 | - gsize g; | 275 | + GKeyFile * conf = g_key_file_new(); |
276 | + GError * error = NULL; | ||
277 | + int index = 0; | ||
278 | + gsize len; | ||
279 | + gsize g; | ||
280 | 280 | ||
281 | - g_key_file_load_from_file(conf,filename,G_KEY_FILE_NONE,&err); | 281 | + g_key_file_load_from_file(conf,filename,G_KEY_FILE_NONE,&error); |
282 | 282 | ||
283 | - gchar **group = g_key_file_get_groups(conf,&len); | ||
284 | - GTK_V3270_COLOR_SCHEME(widget)->schemes = g_new0(GdkRGBA,(len*V3270_COLOR_COUNT)); | ||
285 | - | ||
286 | - for(g=0;g<len;g++) | 283 | + if(error) |
287 | { | 284 | { |
288 | - // Setup colors for current entry | ||
289 | - GtkTreeIter iter; | ||
290 | - GdkRGBA * clr = GTK_V3270_COLOR_SCHEME(widget)->schemes+index; | ||
291 | - const gchar * label = g_key_file_get_locale_string(conf,group[g],"label",NULL,NULL); | ||
292 | - | ||
293 | - load_color_scheme(conf,group[g],clr); | ||
294 | - | ||
295 | - // Set it in the combobox | ||
296 | - gtk_list_store_append((GtkListStore *) model,&iter); | ||
297 | - gtk_list_store_set((GtkListStore *) model, &iter, | ||
298 | - 0, label ? label : group[g], | ||
299 | - 1, clr, | ||
300 | - -1); | ||
301 | - | ||
302 | - // move to next color list | ||
303 | - index += V3270_COLOR_COUNT; | 285 | + g_message("Can't load %s: %s",filename,error->message); |
286 | + g_error_free(error); | ||
287 | + } | ||
288 | + else | ||
289 | + { | ||
290 | + gchar **group = g_key_file_get_groups(conf,&len); | ||
291 | + GTK_V3270_COLOR_SCHEME(widget)->schemes = g_new0(GdkRGBA,(len*V3270_COLOR_COUNT)); | ||
292 | + | ||
293 | + for(g=0;g<len;g++) | ||
294 | + { | ||
295 | + // Setup colors for current entry | ||
296 | + GtkTreeIter iter; | ||
297 | + GdkRGBA * clr = GTK_V3270_COLOR_SCHEME(widget)->schemes+index; | ||
298 | + const gchar * label = g_key_file_get_locale_string(conf,group[g],"label",NULL,NULL); | ||
299 | + | ||
300 | + load_color_scheme(conf,group[g],clr); | ||
301 | + | ||
302 | + // Set it in the combobox | ||
303 | + gtk_list_store_append((GtkListStore *) model,&iter); | ||
304 | + gtk_list_store_set((GtkListStore *) model, &iter, | ||
305 | + 0, label ? label : group[g], | ||
306 | + 1, clr, | ||
307 | + -1); | ||
308 | + | ||
309 | + // move to next color list | ||
310 | + index += V3270_COLOR_COUNT; | ||
311 | + } | ||
312 | + | ||
313 | + g_strfreev(group); | ||
314 | + | ||
304 | } | 315 | } |
305 | 316 | ||
306 | - g_strfreev(group); | 317 | + g_key_file_free(conf); |
307 | 318 | ||
308 | return widget; | 319 | return widget; |
309 | } | 320 | } |
src/v3270/callbacks.c
@@ -329,8 +329,8 @@ static void message(H3270 *session, LIB3270_NOTIFY id , const char *title, const | @@ -329,8 +329,8 @@ static void message(H3270 *session, LIB3270_NOTIFY id , const char *title, const | ||
329 | 329 | ||
330 | static int print(H3270 *session, LIB3270_PRINT_MODE mode) | 330 | static int print(H3270 *session, LIB3270_PRINT_MODE mode) |
331 | { | 331 | { |
332 | - GtkWidget *widget = GTK_WIDGET(lib3270_get_user_data(session)); | ||
333 | - g_autoptr(GError) error = NULL; | 332 | + GtkWidget * widget = GTK_WIDGET(lib3270_get_user_data(session)); |
333 | + GError * error = NULL; | ||
334 | 334 | ||
335 | v3270_print(widget, mode, &error); | 335 | v3270_print(widget, mode, &error); |
336 | 336 | ||
@@ -349,6 +349,7 @@ static int print(H3270 *session, LIB3270_PRINT_MODE mode) | @@ -349,6 +349,7 @@ static int print(H3270 *session, LIB3270_PRINT_MODE mode) | ||
349 | gtk_dialog_run(GTK_DIALOG(dialog)); | 349 | gtk_dialog_run(GTK_DIALOG(dialog)); |
350 | gtk_widget_destroy(dialog); | 350 | gtk_widget_destroy(dialog); |
351 | 351 | ||
352 | + g_error_free(error); | ||
352 | return -1; | 353 | return -1; |
353 | 354 | ||
354 | } | 355 | } |