aboutsummaryrefslogtreecommitdiff
path: root/src/core/keymap.c
diff options
context:
space:
mode:
Diffstat (limited to 'src/core/keymap.c')
-rw-r--r--src/core/keymap.c14
1 files changed, 10 insertions, 4 deletions
diff --git a/src/core/keymap.c b/src/core/keymap.c
index 5054e47..c095396 100644
--- a/src/core/keymap.c
+++ b/src/core/keymap.c
@@ -31,6 +31,12 @@ FILE_LICENCE ( GPL2_OR_LATER_OR_UBDL );
*
*/
+/** Default keyboard mapping */
+static TABLE_START ( keymap_start, KEYMAP );
+
+/** Current keyboard mapping */
+static struct keymap *keymap = keymap_start;
+
/**
* Remap a key
*
@@ -38,12 +44,12 @@ FILE_LICENCE ( GPL2_OR_LATER_OR_UBDL );
* @ret character Mapped character
*/
unsigned int key_remap ( unsigned int character ) {
- struct key_mapping *mapping;
+ struct keymap_key *key;
/* Remap via table */
- for_each_table_entry ( mapping, KEYMAP ) {
- if ( mapping->from == character ) {
- character = mapping->to;
+ for ( key = keymap->basic ; key->from ; key++ ) {
+ if ( key->from == character ) {
+ character = key->to;
break;
}
}