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)); |