aboutsummaryrefslogtreecommitdiffstats
path: root/keymaps.c
diff options
context:
space:
mode:
Diffstat (limited to 'keymaps.c')
-rw-r--r--keymaps.c25
1 files changed, 24 insertions, 1 deletions
diff --git a/keymaps.c b/keymaps.c
index 6685562..661c2e6 100644
--- a/keymaps.c
+++ b/keymaps.c
@@ -64,20 +64,43 @@ static kbd_layout_t *parse_keyboard_layout(const name2keysym_t *table,
kbd_layout_t * k)
{
FILE *f;
+ /* This file is used by both, UI and core components. There are differences
+ * in the way how keymap file path is obtained for these two different
+ * configurations. */
+#if defined(CONFIG_STANDALONE_UI)
+ char filename[2048];
+#else
char * filename;
+#endif // CONFIG_STANDALONE_UI
char line[1024];
int len;
+#if defined(CONFIG_STANDALONE_UI)
+ if (android_core_qemu_find_file(QEMU_FILE_TYPE_KEYMAP, language,
+ filename, sizeof(filename))) {
+ fprintf(stderr,
+ "Could not read keymap file: '%s'\n", language);
+ return NULL;
+ }
+#else
filename = qemu_find_file(QEMU_FILE_TYPE_KEYMAP, language);
+ if (!filename) {
+ fprintf(stderr,
+ "Could not read keymap file: '%s'\n", language);
+ return NULL;
+ }
+#endif // CONFIG_STANDALONE_UI
if (!k)
k = qemu_mallocz(sizeof(kbd_layout_t));
- if (!(filename && (f = fopen(filename, "r")))) {
+ if (!(f = fopen(filename, "r"))) {
fprintf(stderr,
"Could not read keymap file: '%s'\n", language);
return NULL;
}
+#if defined(CONFIG_STANDALONE_UI)
qemu_free(filename);
+#endif // CONFIG_STANDALONE_UI
for(;;) {
if (fgets(line, 1024, f) == NULL)
break;