Commit ae34e941b2824f6947e31001aa8af33603883327

Authored by Perry Werneck
1 parent 975128fa
Exists in master and in 1 other branch develop

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 }