View | Details | Raw Unified | Return to bug 208069 | Differences between
and this patch

Collapse All | Expand All

(-)x11-wm/i3/files/patch-i3-config-wizard_main.c (+40 lines)
Line 0 Link Here
1
--- i3-config-wizard/main.c.orig	2016-03-06 15:17:18 UTC
2
+++ i3-config-wizard/main.c
3
@@ -264,21 +264,29 @@ static char *next_state(const cmdp_token
4
             const xkb_keysym_t *syms;
5
             int num = xkb_keymap_key_get_syms_by_level(xkb_keymap, keycode, 0, 0, &syms);
6
             if (num == 0)
7
-                errx(1, "xkb_keymap_key_get_syms_by_level returned no symbols for keycode %d", keycode);
8
-            if (!keysym_used_on_other_key(syms[0], keycode))
9
-                level = 0;
10
+                fprintf(stderr, "xkb_keymap_key_get_syms_by_level returned no symbols for keycode %d\n", keycode);
11
+            if (num != 0)
12
+            {
13
+                if (!keysym_used_on_other_key(syms[0], keycode))
14
+                    level = 0;
15
+            }
16
         }
17
 
18
         const xkb_keysym_t *syms;
19
         int num = xkb_keymap_key_get_syms_by_level(xkb_keymap, keycode, 0, level, &syms);
20
         if (num == 0)
21
-            errx(1, "xkb_keymap_key_get_syms_by_level returned no symbols for keycode %d", keycode);
22
+            fprintf(stderr, "xkb_keymap_key_get_syms_by_level returned no symbols for keycode %d\n", keycode);
23
         if (num > 1)
24
-            printf("xkb_keymap_key_get_syms_by_level (keycode = %d) returned %d symbolsinstead of 1, using only the first one.\n", keycode, num);
25
-
26
+            fprintf(stderr, "xkb_keymap_key_get_syms_by_level (keycode = %d) returned %d symbolsinstead of 1, using only the first one.\n", keycode, num);
27
         char str[4096];
28
-        if (xkb_keysym_get_name(syms[0], str, sizeof(str)) == -1)
29
-            errx(EXIT_FAILURE, "xkb_keysym_get_name(%u) failed", syms[0]);
30
+        if (num != 0) {
31
+            if (xkb_keysym_get_name(syms[0], str, sizeof(str)) == -1)
32
+                errx(EXIT_FAILURE, "xkb_keysym_get_name(%u) failed", syms[0]);
33
+        }
34
+        else
35
+        {
36
+            strcpy(str, get_string("key"));
37
+        }
38
         const char *release = get_string("release");
39
         char *res;
40
         char *modrep = (modifiers == NULL ? sstrdup("") : sstrdup(modifiers));

Return to bug 208069