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

Collapse All | Expand All

(-)i3-config-wizard/main.c (-8 / +16 lines)
Lines 264-284 static char *next_state(const cmdp_token Link Here
264
            const xkb_keysym_t *syms;
264
            const xkb_keysym_t *syms;
265
            int num = xkb_keymap_key_get_syms_by_level(xkb_keymap, keycode, 0, 0, &syms);
265
            int num = xkb_keymap_key_get_syms_by_level(xkb_keymap, keycode, 0, 0, &syms);
266
            if (num == 0)
266
            if (num == 0)
267
                errx(1, "xkb_keymap_key_get_syms_by_level returned no symbols for keycode %d", keycode);
267
                fprintf(stderr, "xkb_keymap_key_get_syms_by_level returned no symbols for keycode %d\n", keycode);
268
            if (!keysym_used_on_other_key(syms[0], keycode))
268
            if (num != 0)
269
                level = 0;
269
            {
270
                if (!keysym_used_on_other_key(syms[0], keycode))
271
                    level = 0;
272
            }
270
        }
273
        }
271
274
272
        const xkb_keysym_t *syms;
275
        const xkb_keysym_t *syms;
273
        int num = xkb_keymap_key_get_syms_by_level(xkb_keymap, keycode, 0, level, &syms);
276
        int num = xkb_keymap_key_get_syms_by_level(xkb_keymap, keycode, 0, level, &syms);
274
        if (num == 0)
277
        if (num == 0)
275
            errx(1, "xkb_keymap_key_get_syms_by_level returned no symbols for keycode %d", keycode);
278
            fprintf(stderr, "xkb_keymap_key_get_syms_by_level returned no symbols for keycode %d\n", keycode);
276
        if (num > 1)
279
        if (num > 1)
277
            printf("xkb_keymap_key_get_syms_by_level (keycode = %d) returned %d symbolsinstead of 1, using only the first one.\n", keycode, num);
280
            fprintf(stderr, "xkb_keymap_key_get_syms_by_level (keycode = %d) returned %d symbolsinstead of 1, using only the first one.\n", keycode, num);
278
279
        char str[4096];
281
        char str[4096];
280
        if (xkb_keysym_get_name(syms[0], str, sizeof(str)) == -1)
282
        if (num != 0) {
281
            errx(EXIT_FAILURE, "xkb_keysym_get_name(%u) failed", syms[0]);
283
            if (xkb_keysym_get_name(syms[0], str, sizeof(str)) == -1)
284
                errx(EXIT_FAILURE, "xkb_keysym_get_name(%u) failed", syms[0]);
285
        }
286
        else
287
        {
288
            strcpy(str, get_string("key"));
289
        }
282
        const char *release = get_string("release");
290
        const char *release = get_string("release");
283
        char *res;
291
        char *res;
284
        char *modrep = (modifiers == NULL ? sstrdup("") : sstrdup(modifiers));
292
        char *modrep = (modifiers == NULL ? sstrdup("") : sstrdup(modifiers));

Return to bug 208069