e_xkb_layout_get can return NULL so trap for that and only set the

names.layout below if needed.

Signed-off-by: Chris Michael <cp.michael@samsung.com>
This commit is contained in:
Chris Michael 2013-05-03 06:38:24 +01:00
parent da2f217f76
commit b82cb14698
1 changed files with 10 additions and 8 deletions

View File

@ -839,10 +839,11 @@ _e_comp_wl_input_keymap_get(void)
memset(&names, 0, sizeof(names)); memset(&names, 0, sizeof(names));
kbd_layout = e_xkb_layout_get(); if ((kbd_layout = e_xkb_layout_get()))
{
names.model = strdup(kbd_layout->model); names.model = strdup(kbd_layout->model);
names.layout = strdup(kbd_layout->name); names.layout = strdup(kbd_layout->name);
}
/* if we are running under X11, try to get the xkb rule names atom */ /* if we are running under X11, try to get the xkb rule names atom */
if (getenv("DISPLAY")) if (getenv("DISPLAY"))
@ -870,10 +871,11 @@ _e_comp_wl_input_keymap_get(void)
{ {
names.rules = strdup((const char *)data); names.rules = strdup((const char *)data);
data += strlen((const char *)data) + 1; data += strlen((const char *)data) + 1;
/* names.model = strdup((const char *)data); */ if (!names.model)
/* data += strlen((const char *)data) + 1; */ names.model = strdup((const char *)data);
/* names.layout = strdup((const char *)data); */ data += strlen((const char *)data) + 1;
// free(data); if (!names.layout)
names.layout = strdup((const char *)data);
} }
} }