Fix undefined behaviour
This commit is contained in:
parent
68c620fdee
commit
9b38c4c74f
7
nncmpp.c
7
nncmpp.c
|
@ -2211,12 +2211,15 @@ app_init_bindings (const char *keymap,
|
||||||
ARRAY (struct binding, a)
|
ARRAY (struct binding, a)
|
||||||
ARRAY_INIT_SIZED (a, defaults_len);
|
ARRAY_INIT_SIZED (a, defaults_len);
|
||||||
|
|
||||||
|
// Order for stable sorting
|
||||||
|
size_t order = 0;
|
||||||
|
|
||||||
termo_key_t decoded;
|
termo_key_t decoded;
|
||||||
for (size_t i = 0; i < defaults_len; i++)
|
for (size_t i = 0; i < defaults_len; i++)
|
||||||
{
|
{
|
||||||
hard_assert (!*termo_strpkey_utf8 (g.tk,
|
hard_assert (!*termo_strpkey_utf8 (g.tk,
|
||||||
defaults[i].key, &decoded, TERMO_FORMAT_ALTISMETA));
|
defaults[i].key, &decoded, TERMO_FORMAT_ALTISMETA));
|
||||||
a[a_len++] = (struct binding) { decoded, defaults[i].action, a_len };
|
a[a_len++] = (struct binding) { decoded, defaults[i].action, order++ };
|
||||||
}
|
}
|
||||||
|
|
||||||
struct config_item *root = config_item_get (g.config.root, keymap, NULL);
|
struct config_item *root = config_item_get (g.config.root, keymap, NULL);
|
||||||
|
@ -2227,7 +2230,7 @@ app_init_bindings (const char *keymap,
|
||||||
|
|
||||||
int action;
|
int action;
|
||||||
while (app_next_binding (&iter, &decoded, &action))
|
while (app_next_binding (&iter, &decoded, &action))
|
||||||
a[a_len++] = (struct binding) { decoded, action, a_len };
|
a[a_len++] = (struct binding) { decoded, action, order++ };
|
||||||
}
|
}
|
||||||
|
|
||||||
// Use the helper field to use the last mappings of identical bindings
|
// Use the helper field to use the last mappings of identical bindings
|
||||||
|
|
Loading…
Reference in New Issue