conf: try to give better hints if keysyms were mistyped
We can now check keysym names on case-insensitive basis. We can use this to try to give hints to the user what they probably meant when mistyping a keysym name. Signed-off-by: David Herrmann <dh.herrmann@googlemail.com>
This commit is contained in:
parent
37d3499fb5
commit
b9743bb75c
12
src/conf.c
12
src/conf.c
@ -860,6 +860,7 @@ static int parse_single_grab(char *arg, unsigned int *mods,
|
|||||||
uint32_t *keysym, bool allow_mods)
|
uint32_t *keysym, bool allow_mods)
|
||||||
{
|
{
|
||||||
char *tmp, *start, *end;
|
char *tmp, *start, *end;
|
||||||
|
char buf[128];
|
||||||
|
|
||||||
tmp = arg;
|
tmp = arg;
|
||||||
do {
|
do {
|
||||||
@ -920,7 +921,16 @@ static int parse_single_grab(char *arg, unsigned int *mods,
|
|||||||
|
|
||||||
*keysym = xkb_keysym_from_name(start, 0);
|
*keysym = xkb_keysym_from_name(start, 0);
|
||||||
if (!*keysym) {
|
if (!*keysym) {
|
||||||
log_error("invalid key '%s'", start);
|
*keysym = xkb_keysym_from_name(start,
|
||||||
|
XKB_KEYSYM_CASE_INSENSITIVE);
|
||||||
|
if (!*keysym) {
|
||||||
|
log_error("invalid key '%s'", start);
|
||||||
|
return -EFAULT;
|
||||||
|
}
|
||||||
|
|
||||||
|
xkb_keysym_get_name(*keysym, buf, sizeof(buf));
|
||||||
|
log_warning("invalid keysym '%s', did you mean '%s'? (keysyms are case-sensitive)",
|
||||||
|
start, buf);
|
||||||
return -EFAULT;
|
return -EFAULT;
|
||||||
}
|
}
|
||||||
|
|
||||||
|
Loading…
x
Reference in New Issue
Block a user