summaryrefslogtreecommitdiff
diff options
context:
space:
mode:
-rw-r--r--src/xkbcomp/keycodes.c3
-rw-r--r--src/xkbcomp/scanner.c4
2 files changed, 5 insertions, 2 deletions
diff --git a/src/xkbcomp/keycodes.c b/src/xkbcomp/keycodes.c
index 4b72d05..b8abf36 100644
--- a/src/xkbcomp/keycodes.c
+++ b/src/xkbcomp/keycodes.c
@@ -384,7 +384,8 @@ HandleKeycodeDef(KeyNamesInfo *info, KeycodeDef *stmt, enum merge_mode merge)
return false;
}
- return AddKeyName(info, stmt->value, stmt->name, merge, false, true);
+ return AddKeyName(info, (xkb_keycode_t) stmt->value,
+ stmt->name, merge, false, true);
}
static bool
diff --git a/src/xkbcomp/scanner.c b/src/xkbcomp/scanner.c
index b70e5ca..65eef53 100644
--- a/src/xkbcomp/scanner.c
+++ b/src/xkbcomp/scanner.c
@@ -50,7 +50,9 @@ number(struct scanner *s, int64_t *out, int *out_tok)
if (is_hex)
*out = strtoul(start, &end, 16);
else if (is_float)
- *out = strtod(start, &end);
+ /* The parser currently just ignores floats, so the cast is
+ * fine - the value doesn't matter. */
+ *out = (int64_t) strtod(start, &end);
else
*out = strtoul(start, &end, 10);
if (errno != 0 || s->s + s->pos != end)