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 272 }
273 273  
274 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 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 329  
330 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 335 v3270_print(widget, mode, &error);
336 336  
... ... @@ -349,6 +349,7 @@ static int print(H3270 *session, LIB3270_PRINT_MODE mode)
349 349 gtk_dialog_run(GTK_DIALOG(dialog));
350 350 gtk_widget_destroy(dialog);
351 351  
  352 + g_error_free(error);
352 353 return -1;
353 354  
354 355 }
... ...