]> git.proxmox.com Git - qemu.git/blobdiff - ui/keymaps.c
target-mips: Fix incorrect reads and writes to DSPControl register
[qemu.git] / ui / keymaps.c
index 81003bb5caac6a952201ab0ad5bbea97fff8663b..9625d82fa17c2ced40fd0ed8a20a11f236eb67b2 100644 (file)
@@ -23,7 +23,7 @@
  */
 
 #include "keymaps.h"
-#include "sysemu.h"
+#include "sysemu/sysemu.h"
 
 static int get_keysym(const name2keysym_t *table,
                      const char *name)
@@ -92,15 +92,17 @@ static kbd_layout_t *parse_keyboard_layout(const name2keysym_t *table,
     int len;
 
     filename = qemu_find_file(QEMU_FILE_TYPE_KEYMAP, language);
-
-    if (!k)
-       k = g_malloc0(sizeof(kbd_layout_t));
-    if (!(filename && (f = fopen(filename, "r")))) {
+    f = filename ? fopen(filename, "r") : NULL;
+    g_free(filename);
+    if (!f) {
        fprintf(stderr,
                "Could not read keymap file: '%s'\n", language);
        return NULL;
     }
-    g_free(filename);
+
+    if (!k)
+       k = g_malloc0(sizeof(kbd_layout_t));
+
     for(;;) {
        if (fgets(line, 1024, f) == NULL)
             break;
@@ -146,7 +148,7 @@ static kbd_layout_t *parse_keyboard_layout(const name2keysym_t *table,
                    if (rest && strstr(rest, "addupper")) {
                        char *c;
                        for (c = line; *c; c++)
-                           *c = toupper(*c);
+                           *c = qemu_toupper(*c);
                        keysym = get_keysym(table, line);
                        if (keysym)
                            add_keysym(line, keysym, keycode | SCANCODE_SHIFT, k);