Some less warnings and not crashing when freeing.

This commit is contained in:
Pere Pujal i Carabantes 2011-12-01 23:21:45 +00:00
parent 90b59a5e12
commit 4c76598cb0
2 changed files with 4 additions and 5 deletions

View file

@ -44,7 +44,7 @@ struct osk_keyboard *osk_create(char *layout_name, SDL_Surface *canvas, SDL_Surf
if (!layout) if (!layout)
{ {
printf("Error trying to load the required layout %s\n", layout_name); printf("Error trying to load the required layout %s\n", layout_name);
layout = load_layout(keyboard, layout_name); //FIXME, this should try to load the default layout layout = load_layout(keyboard, strdup("default.layout"));
if (!layout) if (!layout)
{ {
printf("Error trying to load the default layout\n"); printf("Error trying to load the default layout\n");
@ -120,7 +120,6 @@ static struct osk_layout *load_layout(on_screen_keyboard *keyboard, char *layout
if (layout_name != NULL) if (layout_name != NULL)
{ {
keyboard->name = strdup(layout_name); keyboard->name = strdup(layout_name);
/* Try full path */ /* Try full path */
fi = fopen(layout_name, "r"); fi = fopen(layout_name, "r");
if (fi == NULL) if (fi == NULL)
@ -135,7 +134,7 @@ static struct osk_layout *load_layout(on_screen_keyboard *keyboard, char *layout
/* Fallback to default */ /* Fallback to default */
snprintf(filename, 255, "%sosk/default.layout", DATA_PREFIX); snprintf(filename, 255, "%sosk/default.layout", DATA_PREFIX);
fi = fopen(filename, "r"); fi = fopen(filename, "r");
keyboard->name = "default.layout"; keyboard->name = strdup("default.layout");
} }
} }
} }
@ -143,7 +142,7 @@ static struct osk_layout *load_layout(on_screen_keyboard *keyboard, char *layout
{ {
snprintf(filename, 255, "%sosk/default.layout", DATA_PREFIX); snprintf(filename, 255, "%sosk/default.layout", DATA_PREFIX);
fi = fopen(filename, "r"); fi = fopen(filename, "r");
keyboard->name = "default.layout"; keyboard->name = strdup("default.layout");
} }
free(filename); free(filename);

View file

@ -2994,7 +2994,7 @@ static void mainloop(void)
if (onscreen_keyboard_layout) if (onscreen_keyboard_layout)
kbd = osk_create(onscreen_keyboard_layout, screen, img_btnsm_up, img_btnsm_down, img_btnsm_off, img_btnsm_nav, img_btnsm_hold, onscreen_keyboard_disable_change); kbd = osk_create(onscreen_keyboard_layout, screen, img_btnsm_up, img_btnsm_down, img_btnsm_off, img_btnsm_nav, img_btnsm_hold, onscreen_keyboard_disable_change);
else else
kbd = osk_create("default.layout", screen, img_btnsm_up, img_btnsm_down, img_btnsm_off, img_btnsm_nav, img_btnsm_hold, onscreen_keyboard_disable_change); kbd = osk_create(strdup("default.layout"), screen, img_btnsm_up, img_btnsm_down, img_btnsm_off, img_btnsm_nav, img_btnsm_hold, onscreen_keyboard_disable_change);
} }
if (kbd == NULL) if (kbd == NULL)
printf("kbd = NULL\n"); printf("kbd = NULL\n");