aboutsummaryrefslogtreecommitdiff
path: root/termkey-internal.h
diff options
context:
space:
mode:
authorPaul LeoNerd Evans <leonerd@leonerd.org.uk>2008-11-09 19:58:11 +0000
committerPaul LeoNerd Evans <leonerd@leonerd.org.uk>2008-11-09 19:58:11 +0000
commit73cee7f0b009c093aa1a49df907c2b8c001b4946 (patch)
tree6be62c9adc21c3be753c6068e57ee216062f85df /termkey-internal.h
parentaef2e912773ca3669c45725f95226d0081c23046 (diff)
downloadtermo-73cee7f0b009c093aa1a49df907c2b8c001b4946.tar.gz
termo-73cee7f0b009c093aa1a49df907c2b8c001b4946.tar.xz
termo-73cee7f0b009c093aa1a49df907c2b8c001b4946.zip
Allow stacking drivers in a linked list; try all of them at getkey() time
Diffstat (limited to 'termkey-internal.h')
-rw-r--r--termkey-internal.h10
1 files changed, 8 insertions, 2 deletions
diff --git a/termkey-internal.h b/termkey-internal.h
index 2a1a831..645a7da 100644
--- a/termkey-internal.h
+++ b/termkey-internal.h
@@ -23,6 +23,13 @@ struct keyinfo {
int modifier_set;
};
+struct termkey_drivernode;
+struct termkey_drivernode {
+ struct termkey_driver *driver;
+ void *info;
+ struct termkey_drivernode *next;
+};
+
struct termkey {
int fd;
int flags;
@@ -44,8 +51,7 @@ struct termkey {
// There are 32 C0 codes
struct keyinfo c0[32];
- struct termkey_driver driver;
- void *driver_info;
+ struct termkey_drivernode *drivers;
// Now some "protected" methods for the driver to call but which we don't
// want exported as real symbols in the library